1 2 /* 3 * $Id: src_rita.js.html,v 1.6 2012/07/19 10:39:50 dev Exp $ 4 */ 5 (function(window, undefined) { 6 7 /** 8 * Simple type-checking functions 9 * @private 10 */ 11 Type = { 12 13 N : 'number', S : 'string', O : 'object', A :'array', B : 'boolean', R : 'regexp', F : 'function', 14 15 /** 16 * from: http://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/ 17 */ 18 get : function(obj) { 19 20 return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); 21 }, 22 23 /** 24 * Returns true if the object if of type 'type, otherwise false 25 */ 26 is : function(obj,type) { 27 28 return Type.get(obj) === type; 29 }, 30 31 /** 32 * Throws TypeError if not the correct type, else returns true 33 */ 34 ok : function(obj,type) { 35 36 if (Type.get(obj)!=type) 37 throw TypeError('Expected '+(type ? type.toUpperCase() : type+E) 38 +", received "+(obj ? Type.get(obj).toUpperCase() : obj+E)); 39 return true; 40 } 41 42 } // end Type 43 44 var is = Type.is, ok = Type.ok; // aliases 45 46 // //////////////////////////////////////////////////////////// 47 // RiMarkov 48 // //////////////////////////////////////////////////////////// 49 50 /** 51 * @name RiMarkov 52 * @class Performs analysis and text generation via Markov chains (aka N-Grams) 53 * with options to process single characters, words, sentences, and 54 * arbitrary regular expressions. 55 */ 56 /* 57 * <p> 58 * 59 * Provides a variety of methods specifically 60 * designed for text-generation. 61 * 62 * @example usage:<pre> 63 * RiMarkov rm = new RiMarkov(this, 3); 64 * rm.loadFile("war_peace.txt"); // in data dir. 65 * String[] sents = rm.generateSentences(10); 66 * for (int i = 0; i < sents.length; i++) { 67 * System.out.println(sents[i]); 68 * }</pre> 69 70 * Note: use RiMarkov.setTokenizerRegex() to control how inputs are tokenized (or split-up). 71 * The default is to use the Penn word-tokenizing conventions (without splitting contractions). 72 * You may wish to simply use whitespace (or some other regular expression), which 73 * can be accomplished as follows:<pre> 74 * RiMarkov rm = new RiMarkov(this, 3); 75 * rm.setTokenizerRegex("\\s");</pre> 76 * 77 * 78 * This creates a new model, with n=3, that tokenizes its 79 * input on the whitespace characters: [ \t\n\x0B\f\r]. 80 * 81 * <p> 82 * 83 * Note: use RiMarkov.setAllowDuplicates(false) method to ensure that sentences that exist 84 * in the input test are not output by generate(). This method should be used with care, 85 * as certain sets of input texts (with allowDuplicates=false) may result in decreased performance 86 * and/or excessive memory use. 87 */ 88 var RiMarkov = makeClass(); 89 90 RiMarkov.prototype = { 91 92 /** 93 * @function 94 * @name RiMarkov 95 * 96 * Construct a Markov chain (or n-gram) model and set its n-Factor 97 * 98 * @param {number} nFactor for the model 99 * @param {boolean} caseSensitive whether the model should be case-sensitive (optional, default=false) 100 * @param {boolean} useSmoothing whether the model should be case-sensitive (optional, default=false) 101 */ 102 initialize : function(nFactor, caseSensitive, useSmoothing) { 103 104 ok(nFactor,N); 105 106 this._n = nFactor; 107 this.smoothing = useSmoothing || false; 108 this.ignoresCase = !caseSensitive || true; 109 TextNode.ignoreCase = !this.ignoresCase; 110 this.root = new TextNode(null, 'ROOT'); 111 }, 112 113 /** 114 * Returns either the raw (unigram) probability for a single token in the model (0 if it does not exist) 115 * OR (for an array) the probability of obtaining a sequence of k tokens where k <= nFactor, 116 * e.g., if nFactor = 3, then valid lengths for the data arrau are 1, 2 & 3. 117 118 * @param {string | array} data the string (or sequence of strings) to search for 119 * 120 * @returns {number} from 0-1 121 */ 122 getProbability : function(data) { 123 124 if (!this.root) err("Model not initialized: null root!"); 125 126 var tn = Type.is(data,S) ? this.root.lookup(data) : this._findNode(data); 127 128 return (tn) ? tn.probability() : 0; 129 130 }, 131 132 /** 133 * Returns the full set of possible next tokens, as an associative array, 134 * (mapping string -> number (probability)) given an array of tokens 135 * representing the path down the tree (with length less than n). 136 * <p> 137 * If the input array length is not less than n, or the path cannot be 138 * found, or the end-node has no children, null is returned. 139 * <p> 140 * @param {string | array} a single token or array of tokens (strings) 141 * 142 * @returns {object} associative array mapping tokens to probabilities 143 */ 144 getProbabilities : function(path) { 145 146 if (Type.is(path,S)) path = [path]; 147 148 if (path.length < 1 || path.length >= this._n) 149 return {}; 150 151 var probs = {}, tn = this._findNode(path); 152 153 if (!tn) return {}; 154 155 var nexts = tn.childNodes(); 156 for ( var i = 0; i < nexts.length; i++) { 157 var node = nexts[i]; 158 if (node) { 159 probs[node.token] = node.probability(); 160 } 161 } 162 163 return probs; 164 // DEAD: CHANGED IN RiTa 6/16/12 ////////////////////////////////// 165 }, 166 167 /** 168 * Continues generating tokens until a token matches 'regex', assuming 169 * the length of the output array is between min and maxLength (inclusive). 170 * 171 * @param {string} or {object} regex The regex string or object to match against 172 * @param {number} minLength the minimum number of tokens to generate 173 * @param {number} maxLength the maximum number of tokens to generate 174 * 175 * @returns {array} strings 176 */ 177 generateUntil : function(regex, minLength, maxLength){ 178 179 minLength = minLength || 1, maxLength = maxLength || 99; 180 181 var mn, tokens, tries=0, maxTries=500; 182 183 OUT: while (++tries < maxTries) { 184 185 // generate the min number of tokens 186 tokens = this.generateTokens(minLength); 187 188 // keep adding one and checking until we pass the max 189 while (tokens.length < maxLength) { 190 191 mn = this._nextNode(tokens); 192 193 if (!mn || !mn.token) 194 continue OUT;// fail, restart 195 196 tokens.push(mn.token); 197 198 // check against our regex 199 if (mn.token.search(regex) >-1 ) 200 return tokens; 201 } 202 } 203 204 // uh-oh, we failed 205 if (tries >= maxTries) 206 err("\n[WARN] RiMarkov failed to complete after "+tries+" attempts\n"); 207 208 return tokens; 209 210 }, 211 212 /** 213 * Generates a string of <pre>length</pre> tokens from the model 214 * @param {number} the target number of tokens to generate 215 * @returns {array} strings 216 */ 217 generateTokens : function(targetNumber){ 218 219 var tries = 0, maxTries = 500, tokens = []; 220 221 OUT: while (++tries < maxTries) { 222 223 var mn = this.root.selectChild(null, true); 224 if (!mn || !mn.token) continue OUT; 225 tokens.push(mn); 226 227 while (tokens.length < targetNumber) { 228 229 mn = this._nextNode(tokens); 230 if (!mn || !mn.token) { // hit the end 231 232 tokens = []; // start over 233 continue OUT; 234 } 235 236 tokens.push(mn); 237 } 238 239 break; 240 } 241 242 // uh-oh, looks like we failed... 243 if (tokens.length < targetNumber) { 244 err("\n[WARN] RiMarkov failed to complete after "+tries 245 +" tries, with only "+tokens.length+" successful generations...\n"); 246 } 247 248 var res = []; 249 for ( var i = 0; i < tokens.length; i++) { 250 res[i] = tokens[i].token; 251 } 252 253 return res;// this._tokensToString(tokens, true); 254 255 }, 256 257 /** 258 * Sets/gets whether the model ignores case in its comparisons 259 * @param {boolean} value sets the value of the flag (optional) 260 * @returns {object | number} 261 */ 262 ignoreCase : function(value){ 263 264 if (arguments.length) { 265 266 this.ignoresCase = value; 267 return this; 268 } 269 return this.ignoresCase; 270 }, 271 272 273 /** 274 * Sets/gets the value of 'useSmoothing' to detemine 275 * whether (add-1) smoothing is enabled for the model. 276 * Note: should be called before any data loading is done. 277 * @returns {object | boolean} 278 */ 279 useSmoothing : function(value) { 280 281 if (arguments.length) { 282 283 this.smoothing = value; 284 return this; 285 } 286 return this.smoothing; 287 }, 288 289 290 /** 291 * TODO: does this make sense as one method? 292 * 293 * If only one array parameter is provided, this function returns all possible 294 * next words (or tokens), ordered by probability, for the given 295 * array. <p>Note: seed arrays of any size (>0) may 296 * be input, but only the last n-1 elements will be considered. 297 * 298 * @example var result = getCompletions([ "the","red"]); 299 * 300 * If two arrays are provided, it returns an unordered list of possible words <i>w</i> 301 * that complete an n-gram consisting of: pre[0]...pre[k], <i>w</i>, post[k+1]...post[n]. 302 * As an example, the following call: 303 * 304 * @example var result = getCompletions([ "the" ], [ "red", "ball" ]); 305 * 306 * will return all the single words that occur between 'the' and 'red ball' 307 * in the current model (assuming n > 3), e.g., [ 'round', 'big', 'bouncy']). 308 * <p> 309 * Note: For this operation to be valid, (pre.length + post.length) 310 * must be strictly less than the model's nFactor, otherwise an 311 * exception will be thrown. 312 * 313 * @param {array} pre 314 * @param {array} post (optional) 315 * 316 * @returns {array} an unordered list of possible next tokens 317 * 318 * @private TODO: implement me! 319 */ 320 getCompletions : function(pre, post) { 321 322 err('not yet implemented in RiTaJS'); 323 324 /* if (!post) { 325 if (pre == null || pre.length >= nFactor) 326 throw new RiTaException("Invalid pre array: "+RiTa.asList(pre)); 327 328 int postLen = post == null ? 0 : post.length; 329 if (pre.length + postLen > nFactor) { 330 throw new RiTaException("Sum of pre.length" + 331 " && post.length must be < N, was "+(pre.length+postLen)); 332 } 333 334 TextNode tn = findNode(pre); 335 if (tn == null) return null; 336 337 List result = new ArrayList(); 338 Collection nexts = tn.getChildNodes(); 339 for (Iterator it = nexts.iterator(); it.hasNext();) 340 { 341 TextNode node = (TextNode) it.next(); 342 String[] test = appendToken(pre, node.getToken()); 343 if (test == null) continue; 344 for (int i = 0; i < postLen; i++) 345 test = appendToken(test, post[i]); 346 if (findNode(test) != null) 347 result.add(node.getToken()); 348 } 349 return strArr(result); 350 } 351 else { 352 var seed = pre; 353 if (seed == null || seed.length == 0) { 354 System.out.println("[WARN] Null (or zero-length) seed passed to getCompletions()"); 355 return null; 356 } 357 int firstLookupIdx = Math.max(0, seed.length-(nFactor-1)); 358 TextNode node = rootLookup(seed[firstLookupIdx++]); 359 for (int i = firstLookupIdx; i < seed.length; i++) { 360 if (node == null) return null; 361 node = node.lookup(seed[i]); 362 } 363 if (node == null) return null; 364 365 Collection c = node.getChildMap().values(); 366 if (c == null || c.size()<1) return null; 367 TextNode[] nodes = new TextNode[c.size()]; 368 nodes = (TextNode[])c.toArray(nodes); 369 Arrays.sort(nodes); 370 String[] result = new String[nodes.length]; 371 for (int i = 0; i < result.length; i++) 372 result[i] = nodes[i].getToken(); 373 return result; 374 }*/ 375 376 }, 377 378 /** 379 * Returns the current n-value for the model 380 * 381 * @returns {number} 382 */ 383 getN : function() { 384 385 return this._n; 386 387 }, 388 389 /** 390 * Returns the number of tokens currently in the model 391 * @returns {number} 392 */ 393 numTokens : function() { 394 395 return this.root.count; 396 }, 397 398 /** 399 * Prints a formatted version of the model to the console 400 */ 401 print : function() { 402 403 console && console.log(this.root.asTree(false)); 404 }, 405 406 /** 407 * Loads a text string into the model after tokenizing it. 408 * 409 * @param {string} text the string 410 * @param {number} multiplier Weighting for text (optional, default=1) <br> 411 * @param {string | regex} a regular expression to be used for tokenizing 412 * (optional, if not supplied, uses RiTa.tokenize()) 413 * @see RiTa.tokenize 414 * @returns {object} this RiMarkov 415 */ 416 loadText : function(text, multiplier, regex) { 417 418 return this.loadTokens(RiTa.tokenize(text,regex), multiplier); 419 }, 420 421 /** 422 * Loads an array of tokens (or words) into the model; each 423 * element in the array must be a single token for proper 424 * construction of the model. 425 * 426 * @param {array} tokens the strings with which to load the model 427 * @param {number} multiplier Weighting for tokens in the array (optional, default=1) <br> 428 * @returns {object} this RiMarkov 429 */ 430 loadTokens : function(tokens, multiplier) { 431 432 multiplier = multiplier || 1; 433 434 this.root.count += tokens.length; // here? 435 436 for (var toAdd, k = 0; k < tokens.length; k++) 437 { 438 toAdd = []; 439 440 for (var j = 0; j < this._n; j++) 441 { 442 if ((k+j) < tokens.length) 443 toAdd[j] = (!isNull(tokens[k+j])) ? tokens[k+j] : null; 444 else 445 toAdd[j] = null; 446 } 447 448 // hack to deal with multiplier... 449 for (var j = 0; j < multiplier; j++) { 450 var node = this.root; 451 for (var i = 0; i < toAdd.length; i++) { 452 if (node.token) 453 node = node.addChild(toAdd[i], this.smoothing ? 2 : 1); 454 } 455 } 456 } 457 458 return this; 459 }, 460 461 462 _findNode : function(path) { 463 464 //log("RiMarkov.findNode("+path.toString()+")"); 465 466 if (!path || !Type.is(path,A) || !path.length) 467 return null; 468 469 var nFactor = this._n; 470 var numNodes = Math.min(path.length, nFactor-1); 471 var firstLookupIdx = Math.max(0, path.length-(nFactor-1)); 472 var node = this.root.lookup(path[firstLookupIdx++]); 473 474 if (!node) return null; 475 476 var idx = 0; // found at least one good node 477 var nodes = []; 478 nodes[idx++] = node; 479 for (var i = firstLookupIdx; i < path.length; i++) { 480 node = node.lookup(path[i]); 481 if (!node) return null; 482 nodes[idx++] = node; 483 } 484 485 return nodes ? nodes[nodes.length-1] : null; 486 }, 487 488 _nextNode : function(previousTokens) 489 { 490 // Follow the seed path down the tree 491 var firstLookupIdx = Math.max(0, previousTokens.length-(this._n-1)), 492 node = this.root.lookup(previousTokens[firstLookupIdx++]); 493 494 for (var i = firstLookupIdx; i < previousTokens.length; i++) { 495 (node) && (node = node.lookup(previousTokens[i])); 496 } 497 498 // Now select the next node 499 return node ? node.selectChild(null, true) : null; 500 }, 501 502 _tokensToString : function(tokens, addSpaces) { // not used at moment 503 var result = E; 504 for ( var i = 0; i < tokens.length; i++) { 505 if (tokens[i].token) { 506 result += tokens[i].token; 507 if (i < tokens.length-1 && addSpaces) 508 result += SP; 509 } 510 } 511 return result; 512 } 513 514 } 515 516 /////////////////////////////////////////////////////////////////////////// 517 // RiTaEvent class 518 /////////////////////////////////////////////////////////////////////////// 519 520 /** 521 * @name RiTaEvent 522 * 523 * @class Simple wrapper for event-based callbacks 524 */ 525 /* 526 * @example A typical usage might be to switch on the type 527 * of a RiTaEvent within a callback: 528 <pre> 529 function onRiTaEvent(e) 530 { 531 if (e.getSource() == RiTa.BEHAVIOR_COMPLETED) 532 // ... 533 else 534 // ... 535 } 536 <pre> 537 */ 538 RiTaEvent = makeClass(); 539 540 RiTaEvent._callbacksDisabled = false; 541 542 RiTaEvent.prototype = { 543 544 /** 545 * Contructs a new RiTaEvent object with a source and type 546 */ 547 initialize : function(sourceRiText, eventType) { 548 549 ok(sourceRiText,O); 550 551 var fn = RiTaEvent.prototype.initialize; 552 if (!fn.ID) fn.ID = 0; 553 this._id = ++(fn.ID); 554 555 this._source = sourceRiText; 556 this._type = eventType || RiText.UNKNOWN; 557 //this._data = data; 558 }, 559 560 561 /** @private */ 562 toString : function() { 563 564 return "RiTaEvent[#"+this._id+" type="+this._type+ 565 " src="+this._source.toString()+"]";//+", data="+this._data+"]"; 566 567 }, 568 569 /** 570 * Gets the source for this event 571 * @returns {object} the source 572 */ 573 getSource : function() { 574 575 return this._source; 576 577 }, 578 579 /** 580 * Gets the type for this event 581 * @returns {string} the type 582 */ 583 getType : function() { 584 585 return this._type; 586 587 }, 588 589 /** 590 * Fires an event and directs it to the appropriate callback implementation 591 * @param callback 592 */ 593 _fire : function(callback) { 594 595 callback = callback || window.onRiTaEvent || RiText.graphics().onRiTaEvent; // last is for P5 596 597 if (typeof callback === 'function') { 598 599 try { 600 callback.apply(this,[this]); 601 } 602 catch(err) { 603 604 RiTaEvent._callbacksDisabled = true; 605 console.warn("RiTaEvent: error calling 'onRiTaEvent' "+err); 606 throw err; 607 } 608 } 609 else if (!RiTaEvent._callbacksDisabled) { 610 611 console.warn("RiTaEvent: no 'onRiTaEvent' callback found"); 612 RiTaEvent._callbacksDisabled = true; 613 } 614 615 }, 616 } 617 618 619 // //////////////////////////////////////////////////////////// 620 // RiLexicon 621 // //////////////////////////////////////////////////////////// 622 623 /** 624 * @name RiLexicon 625 * 626 * @class Represents the core 'dictionary' (or lexicon) for the RiTa tools. 627 * It contains ~35,000 words augmented with phonemic and syllabic data, as well as a list of valid parts-of-speech for each. 628 * The lexicon can be extended and/or customized for additional words, usages, or pronunciations. 629 * 630 * <p> Additionally the lexicon is equipped with implementations of a variety of matching algorithms 631 * (min-edit-distance, soundex, metaphone, anagrams, alliteration, rhymes, looks-like, etc.) 632 * based on combinations of letters, syllables and phonemes. 633 * <p> 634 * Note: For performance, the data for RiLexicon is shared in a single location for ALL created instances (static) 635 * <p> 636 * Note: If you wish to modify or customize the lexicon (e.g., add words, or change pronunciations) 637 * you can do so directly, by editing the 'rita_dict.js' file, or programatically, via addWord() and removeWord() 638 * 639 * @example 640 lex = new RiLexicon(this); 641 similars = lex.similarBySound("cat"); 642 rhymes = lex.getSimpleRhymes("cat"); 643 // etc. 644 */ 645 RiLexicon = makeClass(); 646 647 // //////////////////////////////////////////////////////////// 648 // Static functions 649 // //////////////////////////////////////////////////////////// 650 651 /** 652 * Returns the singleton instance of RiLexicon 653 * Do we need this? 654 */ 655 RiLexicon._getInstance = function() { 656 657 var lexicon; 658 659 try { 660 lexicon = new RiLexicon(); 661 } 662 catch(e) { 663 err("No RiTa lexicon found! Have you included 'rita_dict.js'?"); 664 } 665 666 RiLexicon._getInstance = function() { 667 return lexicon; 668 }; 669 670 return lexicon; 671 } 672 673 // //////////////////////////////////////////////////////////// 674 // Static variables 675 // //////////////////////////////////////////////////////////// 676 677 // TODO: these need comments 678 679 RiLexicon.FEATURE_DELIM = ':'; 680 681 RiLexicon.STRESSED = '1'; 682 683 RiLexicon.UNSTRESSED = '0'; 684 685 RiLexicon.PHONEME_BOUNDARY = '-'; 686 687 RiLexicon.WORD_BOUNDARY = " "; 688 689 RiLexicon.SYLLABLE_BOUNDARY = "/"; 690 691 RiLexicon.SENTENCE_BOUNDARY = "|"; 692 693 RiLexicon.VOWELS = "aeiou"; 694 695 /** @private */ 696 RiLexicon.data = undefined; // shared static var 697 698 // //////////////////////////////////////////////////////////// 699 // Member functions 700 // //////////////////////////////////////////////////////////// 701 702 RiLexicon.prototype = { 703 704 /** 705 * Constructs an instance of the RiLexicon class. 706 * <p> 707 * Note: For performance, the data for all RiLexicon instances 708 * is shared (there is only 1 copy) 709 */ 710 initialize : function() { 711 712 if (!RiLexicon.data) { 713 714 //log(typeof RiTa_DICTIONARY); 715 if (typeof RiTa_DICTIONARY != 'undefined') 716 { 717 //if (!RiTa.SILENT && console) console.log('[RiTa] Loaded lexicon data...'); 718 719 RiLexicon.data = RiTa_DICTIONARY; 720 } 721 else { 722 723 err("Dictionary not found! Make sure to add it to your .html:" 724 + ", e.g.,\n\n <script src=\"path/to/rita_dict.js\"></script>"); 725 } 726 } 727 728 }, 729 730 /** Clears the whole lexicon */ 731 clear : function() { 732 733 RiLexicon.data = undefined; 734 }, 735 736 /** 737 * Adds a word to the current lexicon (not permanent) 738 * 739 * @example lexicon.addWord('abandon','ax-b ae1-n-d ax-n','vb nn vbp'); 740 * 741 * @param {string} word 742 * @param {string} pronunciationData 743 * @param {string} posData 744 * 745 * @returns {object} this RiLexicon 746 */ 747 addWord : function(word, pronunciationData, posData) { 748 749 RiLexicon.data[word.toLowerCase()] = [pronunciationData,posData]; 750 return this; 751 752 }, 753 754 /** 755 * Removes a word from the current lexicon (not permanent) 756 * 757 * @example removeWord('abandon'); 758 * 759 * @param {string} word 760 * @returns {object} this RiLexicon 761 */ 762 removeWord : function(word) { 763 764 delete RiLexicon.data[word]; 765 return this; 766 767 }, 768 769 770 /** 771 * Compares the characters of the input string (using a version of the min-edit distance algorithm) 772 * to each word in the lexicon, returning the set of closest matches. 773 * 774 * @param {string} word 775 * @param {number} minAllowedDist minimum edit distance for matches (optional, default=1) 776 * @param {boolean} preserveLength whether to return only words that match the length of the input word (optional, default=true) 777 * 778 * @returns {array} matching words 779 */ 780 similarByLetter : function(input, minAllowedDist, preserveLength) { 781 782 var minVal = Number.MAX_VALUE, minLen = 2, result = []; 783 784 if (!(input && input.length)) return []; 785 786 input = input.toLowerCase(); 787 minAllowedDist = minAllowedDist || 1; 788 preserveLength = preserveLength || false; 789 790 for (var entry in RiLexicon.data) { 791 792 if (preserveLength && entry.length != input.length || entry.length < minLen) 793 continue; 794 795 entry = entry.toLowerCase(); 796 797 if (entry==input || entry==(input+"s")|| entry==(input+"es")) 798 continue; 799 800 var med = MinEditDist.computeRaw(entry, input); 801 802 if (med == 0) continue; // same word 803 804 // we found something even closer 805 if (med >= minAllowedDist && med < minVal) { 806 807 minVal = med; 808 result = [entry]; 809 } 810 811 // we have another best to add 812 else if (med == minVal) { 813 result.push(entry); 814 } 815 } 816 817 return result; 818 819 }, 820 821 /** 822 * Compares the phonemes of the input string 823 * (using a version of the min-edit distance algorithm) 824 * to each word in the lexicon, returning the set of closest matches. 825 * 826 * @param {string} input 827 * @param {number} minEditDist (optional) minimum edit distance for matches 828 * @returns {array} matching words 829 */ 830 similarBySound: function(input, minEditDist) { // take options arg instead? 831 832 minEditDist = minEditDist || 1; 833 834 var minVal = Number.MAX_VALUE, entry, result = [], minLen = 2, phonesArr, 835 phones = RiTa.getPhonemes(input), med, targetPhonesArr = phones.split("-"); 836 837 targetPhonesArr = phones ? phones.split("-") : []; 838 839 if (!targetPhonesArr[0] || !(input && input.length)) return []; 840 841 for (entry in RiLexicon.data) { 842 843 if (entry.length < minLen) continue; 844 845 entry = entry.toLowerCase(); 846 847 if (entry==input || entry==(input+"s")|| entry==(input+"es")) 848 continue; 849 850 851 phones = this._getRawPhones(entry); 852 853 if (!phones.length) { 854 855 phones = this.syllabify(LetterToSound().getPhones(entry)); 856 if (!phones) return []; 857 } 858 859 phonesArr = phones.replace(/1/g, "").replace(/ /g, "-").split('-'); 860 861 med = MinEditDist.computeRaw(phonesArr, targetPhonesArr); 862 863 if (med == 0) continue; // same phones 864 865 // we found something even closer 866 if (med >= minEditDist && med < minVal) { 867 868 minVal = med; 869 result = [entry]; 870 } 871 // we have another best to add 872 else if (med == minVal) { 873 result.push(entry); 874 } 875 } 876 877 return result; 878 }, 879 880 /** 881 * Returns all valid substrings of the input word in the lexicon 882 * 883 * @param {string} word 884 * @param {number} minLength (optional, default=4) minimum length of return word 885 * @returns {array} matching words 886 */ 887 substrings: function(word, minLength) { 888 889 minLength = minLength || (minLength === 0) || 4; 890 891 var entry, result =[]; 892 for (entry in RiLexicon.data){ 893 if(entry == word || entry.length < minLength ) continue; 894 if (word.indexOf(entry) >=0) result.push(entry); 895 } 896 return result; 897 898 }, 899 900 /** 901 * Returns all valid superstrings of the input word in the lexicon 902 * 903 * @param {string} word 904 * @returns {array} matching words 905 */ 906 superstrings: function(word) { 907 908 var entry, result =[]; 909 for (entry in RiLexicon.data){ 910 if(entry == word) continue; 911 if (entry.indexOf(word) >= 0) result.push(entry); 912 } 913 return result; 914 915 }, 916 917 /** 918 * First calls similarBySound(), then filters the result set by the algorithm 919 * used in similarByLetter(); 920 * 921 * (useful when similarBySound() returns too large a result set) 922 * 923 * @param {string} word 924 * @param {number} minEditDist (optional) minimum edit distance for both matches 925 * @returns {array} matching words 926 */ 927 similarBySoundAndLetter: function(word, minEditDist) { // take options arg instead? 928 929 var simSound, simLetter, result = []; 930 931 if (isNull(minEditDist)) { 932 933 simSound = this.similarBySound(word); 934 simLetter = this.similarByLetter(word); 935 } 936 else { 937 938 simSound = this.similarBySound(word,minEditDist); 939 simLetter = this.similarByLetter(word,minEditDist); 940 } 941 942 if (isNull(simSound) || isNull(simLetter)) return result; 943 944 for (var i=0; i<simSound.length; i++) { 945 946 for (var j=0; j<simLetter.length; j++) { 947 948 if (simSound[i] == simLetter[j]) 949 result.push(simLetter[j]); 950 } 951 } 952 953 return result; 954 }, 955 956 /** 957 * Returns the array of all words in the lexicon or those matching a specific regex. If specified, 958 * the order of the result array is randomized before return. 959 * 960 * @param {regex} regex (string or object) pattern to match (optional) 961 * @param {boolean} randomize randomizes the order (default=false) 962 * @returns {array} words in the RiLexicon 963 */ 964 getWords : function() { 965 966 var a = arguments, randomize = false, regex = undefined, 967 wordArr = [], words = Object.keys(RiLexicon.data); // TODO: replace Object.keys() 968 969 switch (a.length) { 970 971 case 2: 972 973 if (Type.is(a[0],B)) { 974 randomize = a[0]; 975 regex = (Type.is(a[1],R)) ? a[1] : new RegExp(a[1]); 976 } 977 else { 978 randomize = a[1]; 979 regex = (Type.is(a[0],R)) ? a[0] : new RegExp(a[0]); 980 }; 981 982 break; 983 984 case 1: 985 986 if (Type.is(a[0],B)) { 987 return a[0] ? shuffle(words) : Object.keys(words); 988 } 989 990 regex = (Type.is(a[0],R)) ? a[0] : new RegExp(a[0]); 991 992 break; 993 994 case 0: 995 996 return shuffle(words); 997 } 998 999 1000 for (var i = 0; i < words.length; i++) { 1001 1002 if (words[i].match(regex)) { 1003 1004 wordArr.push(words[i]); 1005 } 1006 } 1007 1008 return randomize ? shuffle(wordArr) : wordArr; 1009 1010 }, 1011 1012 /** 1013 * Returns true if c is a vowel 1014 * @param {char} c 1015 * @returns {boolean} 1016 */ 1017 _isVowel : function(c) { 1018 1019 return (strOk(c) && RiLexicon.VOWELS.indexOf(c) > -1); 1020 1021 }, 1022 1023 /** 1024 * Returns true if c is a consonant 1025 * @param {char} p 1026 * @returns {boolean} 1027 */ 1028 _isConsonant : function(p) { 1029 1030 return (typeof p == S && p.length==1 && 1031 RiLexicon.VOWELS.indexOf(p) < 0 && /^[a-z\u00C0-\u00ff]+$/.test(p)); 1032 1033 }, 1034 1035 /** 1036 * Returns true if the word exists in the lexicon 1037 * @param {string} word 1038 * @returns {boolean} 1039 */ 1040 containsWord : function(word) { 1041 1042 return (strOk(word) && !isNull(RiLexicon.data[word.toLowerCase()])); 1043 1044 }, 1045 1046 /** 1047 * Returns true if the two words rhyme, that is, if their final stressed phoneme 1048 * and all following phonemes are identical, else false. 1049 * <p> 1050 * Note: returns false if word1.equals(word2) or if either (or both) are null; 1051 * <p> 1052 * Note: at present doesn't use letter-to-sound engine if either word is not found in the lexicon, 1053 * but instead just returns false. 1054 * 1055 * @param {string} word1 1056 * @param {string} word2 1057 * 1058 * @returns {boolean} true if the two words rhyme, else false. 1059 */ 1060 isRhyme : function(word1, word2) { 1061 1062 if ( !strOk(word1) || !strOk(word2) || equalsIgnoreCase(word1, word2)) 1063 return false; 1064 1065 var p1 = this._lastStressedPhoneToEnd(word1), 1066 p2 = this._lastStressedPhoneToEnd(word2); 1067 1068 return (strOk(p1) && strOk(p2) && p1 === p2); 1069 1070 }, 1071 1072 /** 1073 * 1074 * Two words rhyme if their final stressed vowel and all following phonemes are identical. 1075 * @param {string} word 1076 * @returns {array} strings of the rhymes for a given word, or empty array if none are found 1077 */ 1078 getRhymes : function(word) { 1079 1080 //this._buildWordlist_(); 1081 1082 if (this.containsWord(word)) { 1083 1084 var p = this._lastStressedPhoneToEnd(word); 1085 var entry, entryPhones, results = []; 1086 1087 for (entry in RiLexicon.data) { 1088 if (entry === word) 1089 continue; 1090 entryPhones = this._getRawPhones(entry); 1091 1092 if (strOk(entryPhones) && endsWith(entryPhones, p)) { 1093 results.push(entry); 1094 } 1095 } 1096 return (results.length > 0) ? results : []; // return null? 1097 } 1098 1099 return []; // return null? 1100 1101 }, 1102 1103 /** 1104 * Finds alliterations by comparing the phonemes of the input string to those of each word in the lexicon 1105 * 1106 * @param {string} word input 1107 * @returns {array} strings of alliterations 1108 */ 1109 getAlliterations : function(word) { 1110 1111 if (this.containsWord(word)) { 1112 1113 var c2, entry, results = []; 1114 var c1 = this._firstConsonant(this._firstStressedSyllable(word)); 1115 1116 for (entry in RiLexicon.data) { 1117 1118 c2 = this._firstConsonant(this._firstStressedSyllable(entry)); 1119 1120 if (c2 && c1 === c2) { 1121 results.push(entry); 1122 } 1123 } 1124 return (results.length > 0) ? results : []; // return null? 1125 } 1126 return []; // return null? 1127 1128 }, 1129 1130 /** 1131 * Returns true if the first stressed consonant of the two words match, else false. 1132 * 1133 * @param {string} word1 1134 * @param {string} word2 1135 * @returns {boolean} true if word1.equals(word2) and false if either (or both) are null; 1136 */ 1137 isAlliteration : function(word1, word2) { 1138 1139 if (!strOk(word1) || !strOk(word2)) return false; 1140 1141 if (equalsIgnoreCase(word1, word2)) return true; 1142 1143 var c1 = this._firstConsonant(this._firstStressedSyllable(word1)), 1144 c2 = this._firstConsonant(this._firstStressedSyllable(word2)); 1145 1146 //log("'"+c1+"'=?'"+c2+"'"); 1147 1148 return (strOk(c1) && strOk(c2) && c1 === c2); 1149 1150 }, 1151 1152 /** 1153 * Returns the first stressed syllable of the input word 1154 * @param {string} word 1155 * @returns {string} 1156 */ 1157 _firstStressedSyllable : function(word) { 1158 1159 var raw = this._getRawPhones(word), idx = -1, c, firstToEnd; 1160 1161 if (!strOk(raw)) return E; // return null? 1162 1163 idx = raw.indexOf(RiLexicon.STRESSED); 1164 1165 if (idx < 0) return E; // no stresses... return null? 1166 1167 c = raw.charAt(--idx); 1168 1169 while (c != ' ') { 1170 if (--idx < 0) { 1171 // single-stressed syllable 1172 idx = 0; 1173 break; 1174 } 1175 c = raw.charAt(idx); 1176 } 1177 1178 firstToEnd = idx === 0 ? raw : trim(raw.substring(idx)); 1179 idx = firstToEnd.indexOf(' '); 1180 1181 return idx < 0 ? firstToEnd : firstToEnd.substring(0, idx); 1182 1183 }, 1184 1185 /** 1186 * Returns true for 'word' if it has a verb form. That is, if any of its possible parts of speech 1187 * are any variant of a verb in the PENN part-of-speech tag set (e.g. vb, vbg, vbd, vbp, vbz)); 1188 * @param {string} word the PENN part-of-speech tag 1189 * @returns {boolean} true if the word can be used as a verb 1190 */ 1191 isVerb: function(word) { 1192 1193 ///if (word && word.indexOf(" ") != -1) err("Only accepts a single word"); // TODO: add test 1194 1195 var pos = RiTa.getPosTags(word); 1196 //console.log(word+":"+pos) 1197 return PosTagger.isVerb(pos.toString()); 1198 1199 }, 1200 1201 /** 1202 * Returns true for 'word' if it has a noun form. That is, if any of its possible parts of speech 1203 * are any variant of a noun in the PENN part-of-speech tag set(e.g. nn, nns, nnp, nnps) 1204 * @param {string} word the PENN part-of-speech tag 1205 * @returns {boolean} true if the word can be used as a noun 1206 */ 1207 isNoun : function(word) { 1208 1209 if (word && word.indexOf(" ") != -1) err("Only accepts a single word"); // TODO: add test 1210 1211 //return RiTa._tagForWordNet(word) === 'n' ; 1212 1213 var pos = RiTa.getPosTags(word); 1214 return PosTagger.isNoun(pos.toString()); 1215 1216 }, 1217 1218 /** 1219 * Returns true for 'word' if it has an adverb form. That is, if any of its possible parts of speech 1220 * are any variant of an adverb in the PENN part-of-speech tag set (e.g. rb, rbr, rbs) 1221 * @param {string} word the PENN part-of-speech tag 1222 * @returns boolean} true if the word can be used as an adverb 1223 */ 1224 isAdverb : function(word) { 1225 1226 if (word && word.indexOf(" ") != -1) err("Only accepts a single word"); // TODO: add test 1227 1228 //return RiTa.tagForWordNet(word) === 'r' ; 1229 1230 var pos = RiTa.getPosTags(word); 1231 return PosTagger.isAdverb(pos.toString()); 1232 1233 }, 1234 1235 /** 1236 * Returns true for 'word' if it has an adjective form. That is, if any of its possible parts of speech 1237 * are any variant of an adjective in the PENN part-of-speech tag set (e.g. jj, jjr, jjs) 1238 * @param {string} word the PENN part-of-speech tag 1239 * @returns {boolean} true if the word can be used as an adjective 1240 */ 1241 isAdjective : function(word) { 1242 1243 if (word && word.indexOf(" ") != -1) err("Only accepts a single word"); // TODO: add test 1244 1245 //return RiTa._tagForWordNet(word) === 'a' ; 1246 1247 var pos = RiTa.getPosTags(word); 1248 return PosTagger.isAdj(pos.toString()); 1249 1250 }, 1251 1252 1253 /** 1254 * Returns a String containing the phonemes for each syllable of each word of the input text, 1255 * delimited by dashes (phonemes) and semi-colons (words). For example, the 4 syllables of the phrase 1256 * 'The dog ran fast' is "dh-ax:d-ao-g:r-ae-n:f-ae-s-t". 1257 * 1258 * @param {string} word 1259 * 1260 * @returns {string} the phonemes for each syllable of each word, or null if no text has been input. 1261 */ 1262 _getSyllables : function(word) { 1263 1264 if (!Type.is(word,S)) err('Bad type'); 1265 1266 if (!word.length) return E; 1267 1268 var wordArr = RiTa.tokenize((word)), phones, raw = []; 1269 1270 for (var i=0; i< wordArr.length; i++) { 1271 1272 raw[i] = this._getRawPhones(wordArr[i]).replace(/ /g, "/"); 1273 } 1274 1275 return RiTa.untokenize(raw).replace(/1/g, "").trim(); 1276 1277 }, 1278 1279 /** 1280 * Returns a String containing all phonemes for the input text, delimited by semi-colons, 1281 * or null if not found 1282 * 1283 * @example "dh:ax:d:ao:g:r:ae:n:f:ae:s:t" 1284 * 1285 * @param {string} word 1286 * 1287 * @returns {string} all phonemes, or null if not found 1288 */ 1289 _getPhonemes : function(word) { 1290 1291 if (!word || !word.length) return null; 1292 1293 var wordArr = RiTa.tokenize(word), raw = []; 1294 1295 for (var i=0; i< wordArr.length; i++) 1296 { 1297 1298 if (RiTa.isPunctuation(wordArr[i])) continue; 1299 1300 // raw[i] = wordArr[i].length 1301 raw[i] = this._getRawPhones(wordArr[i]); 1302 1303 if (!raw[i].length) return null; 1304 //err("Unable to lookup (need LTSEngine): "+wordArr[i]); 1305 1306 raw[i] = raw[i].replace(/ /g, "-"); 1307 } 1308 1309 return RiTa.untokenize(raw).replace(/1/g, E).trim(); 1310 }, 1311 1312 /** 1313 * Returns a String containing the stresses for each syllable of the input text, delimited by semi-colons, 1314 * @example "0:1:0:1", with 1's meaning 'stressed', and 0's meaning 'unstressed', 1315 * 1316 * @param {string} word 1317 * 1318 * @returns {string} stresses for each syllable, or null if no text has been input. 1319 */ 1320 _getStresses : function(words) { 1321 1322 var stresses = [], phones, raw = [], 1323 wordArr = Type.is(words,A) ? words : RiTa.tokenize(words); 1324 1325 if (!words.length) return stresses; 1326 1327 for (var i=0; i< wordArr.length; i++) { 1328 1329 if (!RiTa.isPunctuation(wordArr[i])) 1330 raw[i] = this._getRawPhones(wordArr[i]); 1331 } 1332 1333 for (var i = 0; i < raw.length; i++) { 1334 1335 if (raw[i]) { // ignore undefined array items (eg Punctuation) 1336 1337 phones = raw[i].split(SP); 1338 for (var j = 0; j < phones.length; j++) { 1339 1340 var isStress = (phones[j].indexOf(RiLexicon.STRESSED) > -1) 1341 ? RiLexicon.STRESSED : RiLexicon.UNSTRESSED; 1342 1343 if (j > 0) isStress = "/" + isStress; 1344 1345 stresses.push(isStress); 1346 } 1347 } 1348 } 1349 1350 return stresses.join(" ").replace(/ \//g, "/"); 1351 1352 }, 1353 1354 /** 1355 * Returns the raw dictionary data used to create the default lexicon 1356 * @returns {object} dictionary mapping words to their pronunciation/pos data 1357 */ 1358 getLexicalData : function() { 1359 1360 return RiLexicon.data; 1361 1362 }, 1363 1364 /** 1365 * Allows one to set the raw dictionary data used to create the default lexicon. 1366 * See RiLexicon.addWord() for data format 1367 * 1368 * @param {object} dictionaryDataObject mapping words to their pronunciation/pos data 1369 * @returns {object} this RiLexicon 1370 */ 1371 setLexicalData : function(dictionaryDataObject) { 1372 1373 RiLexicon.data = dictionaryDataObject; 1374 1375 return RiLexicon.data; 1376 1377 }, 1378 1379 /** 1380 * Returns the raw dictionary entry for the given word (isn't necessary in typical usage) 1381 * 1382 * @param {string} word 1383 * 1384 * @returns {array} a 2-element array of strings, 1385 * the first is the stress and syllable data, 1386 * the 2nd is the pos data, 1387 * or null if not found 1388 */ 1389 _lookupRaw : function(word) { 1390 1391 word = word.toLowerCase(); 1392 1393 if (RiLexicon.data[word]) return RiLexicon.data[word]; 1394 1395 log("[RiTa] No lexicon entry for '" + word + "'"); 1396 1397 return null; // if private, should return 'undefined' or null? 1398 1399 }, 1400 1401 1402 _getRawPhones : function(word) { 1403 1404 var data = this._lookupRaw(word); 1405 return (data && data.length==2) ? data[0] : E; // TODO: verify 1406 1407 }, 1408 1409 1410 _getPosData : function(word) { 1411 1412 var data = this._lookupRaw(word); 1413 return (data && data.length==2) ? data[1] : E; // TODO: verify 1414 1415 }, 1416 1417 1418 _getPosArr : function(word) { // SHOULD BE PRIVATE 1419 1420 var pl = this._getPosData(word); 1421 1422 if (!strOk(pl)) return []; // TODO: verify 1423 1424 return pl.split(SP); 1425 1426 }, 1427 1428 1429 _firstConsonant : function(rawPhones) { 1430 1431 if (!strOk(rawPhones)) return E; // return null? 1432 1433 var phones = rawPhones.split(RiLexicon.PHONEME_BOUNDARY); 1434 // var phones = rawPhones.split(PHONEME_BOUNDARY); 1435 1436 if (!isNull(phones)) { 1437 1438 for (var j = 0; j < phones.length; j++) { 1439 if (this._isConsonant(phones[j].charAt(0))) // first letter only 1440 return phones[j]; 1441 } 1442 } 1443 return E; // return null? 1444 1445 }, 1446 1447 1448 _lastStressedPhoneToEnd : function(word) { 1449 1450 if (!strOk(word)) return E; // return null? 1451 1452 var idx, c, result; 1453 var raw = this._getRawPhones(word); 1454 1455 if (!strOk(raw)) return E; // return null? 1456 1457 idx = raw.lastIndexOf(RiLexicon.STRESSED); 1458 1459 if (idx < 0) return E; // return null? 1460 1461 c = raw.charAt(--idx); 1462 while (c != '-' && c != ' ') { 1463 if (--idx < 0) { 1464 return raw; // single-stressed syllable 1465 } 1466 c = raw.charAt(idx); 1467 } 1468 result = raw.substring(idx + 1); 1469 1470 return result; 1471 1472 }, 1473 1474 /** 1475 * Returns a random word from the lexicon 1476 * 1477 * @param {string} pos (optional) 1478 * @param {string} syllableCount (optional) 1479 * @returns {string} random word 1480 */ 1481 getRandomWord : function() { // takes nothing, pos, syllableCount, or both 1482 1483 var found = false, a = arguments, wordArr = Object.keys(RiLexicon.data), 1484 ran = Math.floor(Math.random() * Object.keys(RiLexicon.data).length), 1485 ranWordArr = shuffle(wordArr); 1486 1487 switch (a.length) { 1488 1489 case 2: //a[0]=pos a[1]=syllableCount 1490 1491 a[0] = trim(a[0].toUpperCase()); 1492 1493 for(var j = 0; j < PosTagger.TAGS.length; j++) { 1494 1495 if (PosTagger.TAGS[j] == a[0]) found = true; 1496 } 1497 1498 if (found) { 1499 1500 for(var i=0; i< ranWordArr.length; i++){ 1501 1502 var data = this._lookupRaw(ranWordArr[i]); 1503 var posTag = RiTa.getPosTags(ranWordArr[i]); 1504 1505 if (data[0].split(" ").length == a[1] && a[0] == posTag[0].toUpperCase()) { 1506 return ranWordArr[i]; 1507 } 1508 } 1509 } 1510 1511 return E; 1512 1513 break; 1514 1515 case 1: 1516 1517 if (Type.is(a[0],S)) { //pos 1518 1519 a[0] = trim(a[0].toUpperCase()); 1520 1521 for(var j = 0; j < PosTagger.TAGS.length; j++) { 1522 1523 if (PosTagger.TAGS[j] == a[0]) found = true; 1524 } 1525 1526 if (found) { 1527 1528 for(var i=0; i< ranWordArr.length; i++){ 1529 1530 var posTag = RiTa.getPosTags(ranWordArr[i]); 1531 1532 if (a[0] == posTag[0].toUpperCase()) { 1533 return ranWordArr[i]; 1534 } 1535 } 1536 } 1537 } 1538 1539 else { //syllableCount 1540 1541 for(var i=0; i< ranWordArr.length; i++) { 1542 1543 var data = this._lookupRaw(ranWordArr[i]); 1544 1545 if (data[0].split(" ").length == a[0]) { 1546 1547 return ranWordArr[i]; 1548 } 1549 } 1550 } 1551 1552 break; 1553 1554 case 0: 1555 1556 return wordArr[ran]; 1557 } 1558 return E; 1559 1560 }, 1561 1562 } 1563 1564 Phones = { 1565 1566 consonants: [ 'b', 'ch', 'd', 'dh', 'f', 'g', 'hh', 'jh', 'k', 'l', 'm', 'n', 1567 'ng', 'p', 'r', 's', 'sh', 't', 'th', 'v', 'w', 'y', 'z', 'zh' ], 1568 1569 vowels: [ 'aa', 'ae', 'ah', 'ao', 'aw', 'ax', 'ay', 'eh', 'er', 'ey', 'ih', 'iy', 1570 'ow', 'oy', 'uh', 'uw' ], 1571 1572 onsets: [ 'p', 't', 'k', 'b', 'd', 'g', 'f', 'v', 'th', 'dh', 's', 'z', 'sh', 'ch', 'jh', 'm', 1573 'n', 'r', 'l', 'hh', 'w', 'y', 'p r', 't r', 'k r', 'b r', 'd r', 'g r', 'f r', 1574 'th r', 'sh r', 'p l', 'k l', 'b l', 'g l', 'f l', 's l', 't w', 'k w', 'd w', 1575 's w', 's p', 's t', 's k', 's f', 's m', 's n', 'g w', 'sh w', 's p r', 's p l', 1576 's t r', 's k r', 's k w', 's k l', 'th w', 'zh', 'p y', 'k y', 'b y', 'f y', 1577 'hh y', 'v y', 'th y', 'm y', 's p y', 's k y', 'g y', 'hh w', '' ], 1578 1579 digits: [ 'z-ih-r-ow', 'w-ah-n', 't-uw', 'th-r-iy', 'f-ao-r', 'f-ay-v', 's-ih-k-s', 1580 's-eh1-v-ax-n', 'ey-t', 'n-ih-n' ] 1581 } 1582 1583 //////////////////////////////////////////////////////////////// 1584 // RiString 1585 //////////////////////////////////////////////////////////////// 1586 1587 //RiString.DEFAULT_FEATURES = [ 'Phonemes', 'Stresses', 'Words', 'Syllables' ]; 1588 1589 /** 1590 * @name RiString 1591 * 1592 * @class The basic text container object, implementing a variety of 1593 * additional functionality atop the javascript string object 1594 */ 1595 RiString = makeClass(); 1596 1597 1598 // //////////////////////////////////////////////////////////// 1599 // Member functions 1600 // //////////////////////////////////////////////////////////// 1601 1602 RiString.prototype = { 1603 1604 /** 1605 * The RiString constructor function 1606 * 1607 * @param {string} the text 1608 */ 1609 initialize : function(text) { 1610 1611 Type.ok(text,S); 1612 this._text = text; 1613 this.features = undefined; 1614 }, 1615 1616 /** 1617 * Computes a set of features for the contained string, including 1618 * phonemes, syllables, stresses, etc. 1619 * To access any of these, use get(name), e.g., 1620 * 1621 * @example myRiString.get('phonemes') || myRiString.get(RiTa.PHONEMES); 1622 * 1623 * @returns this RiString 1624 */ 1625 analyze : function() { 1626 1627 var words = (this._text.indexOf(SP) ? RiTa.tokenize(this._text) : [this._text]), 1628 lex = RiLexicon._getInstance(), slash = '/', stressyls, raw, delim = '-', 1629 phonemes = E, syllables = E, stresses = E, lts; 1630 1631 this.features = this.features || {}; 1632 1633 for (var i = 0, l = words.length; i < l; i++) { 1634 1635 raw = lex._getRawPhones(words[i]); 1636 1637 if (!raw) { 1638 1639 if (!RiTa.SILENT && console) 1640 console.log("[RiTa] Using LTS for '"+words[i]+"'"); 1641 1642 lts = lts || LetterToSound(); 1643 raw = this.syllabify(lts.getPhones(words[i])); 1644 } 1645 1646 phonemes += raw.replace(/[0-2]/g, E).replace(/ /g, delim) + SP; 1647 syllables += raw.replace(/ /g, slash).replace(/1/g, E) + SP; 1648 1649 stressyls = raw.split(SP); 1650 for (var j = 0; j < stressyls.length; j++) { 1651 1652 if (!stressyls[j].length) continue; 1653 1654 stresses += (stressyls[j].indexOf(RiLexicon.STRESSED) > -1) 1655 ? RiLexicon.STRESSED : RiLexicon.UNSTRESSED; 1656 1657 if (j < stressyls.length-1) stresses += slash; 1658 } 1659 if (!endsWith(stresses, SP)) stresses += SP; 1660 } 1661 this.features.phonemes = phonemes.trim(); 1662 this.features.stresses = stresses.trim(); 1663 this.features.syllables = syllables.trim(); 1664 1665 //log(this.features); 1666 1667 return this; 1668 }, 1669 1670 1671 /** 1672 * Syllabifies the input, given a string of phonemes from the CMU pronouncing dictionary set 1673 * (with optional stress numbers after vowels), or an array of phonemes, e.g. "B AE1 T" or ["B", "AE1", "T"]''' 1674 * 1675 * @param {string or array} input containing 1676 * @returns {string} 1677 */ 1678 syllabify : function(input) { 1679 1680 var dbug, None=undefined, internuclei = [], syllables = [], // returned data structure. 1681 sylls = ((typeof (input) == 'string') ? input.split('-') : input); 1682 1683 for (var i = 0; i < sylls.length; i++) { 1684 1685 var phoneme = sylls[i].trim(), stress = None; 1686 1687 if (!phoneme.length) continue; 1688 1689 if ( isNum(last(phoneme)) ) { 1690 1691 stress = parseInt(last(phoneme)); 1692 phoneme = phoneme.substring(0, phoneme.length-1); 1693 } 1694 1695 if(dbug)console.log(i+")"+phoneme + ' stress='+stress+' inter='+internuclei.join(':')); 1696 1697 if (inArray(Phones.vowels, phoneme)) { 1698 1699 // Split the consonants seen since the last nucleus into coda and onset. 1700 var coda = None, onset = None; 1701 1702 // Make the largest onset we can. The 'split' variable marks the break point. 1703 for (var split = 0; split < internuclei.length+1; split++) { 1704 1705 coda = internuclei.slice(0, split); 1706 onset = internuclei.slice(split, internuclei.length); 1707 1708 if(dbug)console.log(' '+split+') onset='+onset.join(':')+' coda='+coda.join(':')+' inter='+internuclei.join(':')); 1709 1710 // If we are looking at a valid onset, or if we're at the start of the word 1711 // (in which case an invalid onset is better than a coda that doesn't follow 1712 // a nucleus), or if we've gone through all of the onsets and we didn't find 1713 // any that are valid, then split the nonvowels we've seen at this location. 1714 var bool = inArray(Phones.onsets, onset.join(" ")); 1715 if (bool || syllables.length == 0 || onset.length == 0) { 1716 if(dbug)console.log(' break '+phoneme); 1717 break; 1718 } 1719 } 1720 1721 //if(dbug)console.log(' onset='+join(',',onset)+' coda='+join(',',coda)); 1722 1723 // Tack the coda onto the coda of the last syllable. Can't do it if this 1724 // is the first syllable. 1725 if (syllables.length > 0 ) { 1726 1727 //syllables[syllables.length-1][3] = syllables[syllables.length-1][3] || []; 1728 //console.log(' len='+syllables[syllables.length-1][3].length); 1729 extend(syllables[syllables.length-1][3], coda); 1730 if(dbug)console.log(' tack: '+coda+' -> len='+syllables[syllables.length-1][3].length+" ["+syllables[syllables.length-1][3]+"]"); 1731 } 1732 1733 // Make a new syllable out of the onset and nucleus. 1734 1735 var toPush = [ [stress], onset, [phoneme], [] ]; 1736 syllables.push(toPush); 1737 1738 // At this point we've processed the internuclei list. 1739 internuclei = []; 1740 } 1741 1742 else if (!inArray(Phones.consonants, phoneme) && phoneme != " ") { 1743 throw Error('Invalid phoneme: ' + phoneme); 1744 } 1745 1746 else { // a consonant 1747 1748 //console.log('inter.push: '+phoneme); 1749 internuclei.push(phoneme) 1750 } 1751 } 1752 1753 1754 // Done looping through phonemes. We may have consonants left at the end. 1755 // We may have even not found a nucleus. 1756 if (internuclei.length > 0) { 1757 1758 if (syllables.length == 0) { 1759 1760 syllables.push([ [None], internuclei, [], [] ]); 1761 } 1762 else { 1763 1764 extend(syllables[syllables.length-1][3], internuclei); 1765 } 1766 1767 } 1768 1769 //if(dbug)console.log((syllables)); 1770 1771 return this._stringify(syllables); 1772 }, 1773 1774 /* 1775 * Takes a syllabification and turns it into a string of phonemes, 1776 * delimited with dashes, and spaces between syllables 1777 */ 1778 _stringify : function(syllables) { 1779 1780 var ret = []; 1781 for (var i = 0; i < syllables.length; i++) { 1782 1783 var syl = syllables[i]; 1784 var stress = syl[0][0]; 1785 var onset = syl[1]; 1786 var nucleus = syl[2]; 1787 var coda = syl[3]; 1788 1789 if (stress != undefined && nucleus.length) // dch 1790 nucleus[0] += (''+stress); 1791 1792 var data = []; 1793 for (var j = 0; j < onset.length; j++) 1794 data.push(onset[j]); 1795 1796 for (var j = 0; j < nucleus.length; j++) 1797 data.push(nucleus[j]); 1798 1799 for (var j = 0; j < coda.length; j++) 1800 data.push(coda[j]); 1801 1802 ret.push(data.join('-')); 1803 } 1804 1805 return ret.join(' '); 1806 }, 1807 1808 1809 // TMP: remove 1810 _splitSyllables : function(word) { 1811 1812 //console.log('_splitSyllables='+word); 1813 1814 var str = E, res = [], phones = word.split('-'), gotFirstVowel = false; 1815 1816 for (var j = 0; j < phones.length; j++) { 1817 1818 1819 var isVowel = RiLexicon._getInstance()._isVowel(phones[j].charAt(0)); 1820 if (isVowel) { 1821 1822 if (gotFirstVowel) { 1823 1824 res.push(str.substring(0,str.length-1)); 1825 str = phones[j]; 1826 if (j < phones.length-1) 1827 str += '-'; 1828 } 1829 else { 1830 1831 gotFirstVowel = true; 1832 str += phones[j]; 1833 if (j < phones.length-1) 1834 str += '-'; 1835 } 1836 continue; 1837 } 1838 1839 //console.log(j+") "+phones[j]+","+frst); 1840 str += phones[j]; 1841 if (j < phones.length-1) 1842 str += '-'; 1843 } 1844 1845 res.push(str); 1846 1847 return res; 1848 }, 1849 1850 _countChar : function(word,char) 1851 { 1852 var count = 0; 1853 for (var i = 0; i < word.length; i++) { 1854 if (word.charAt(i)==char) count++; 1855 } 1856 return count; 1857 }, 1858 1859 /** 1860 * Returns the specified feature, computing it first if necessary. 1861 * Default features include RiTa.STRESSES, RiTa.PHONEMES, and RiTa.SYLLABLES. 1862 * 1863 * @example myRiString.get('phonemes') || myRiString.get(RiTa.PHONEMES); 1864 * 1865 * @returns {string} the requested feature 1866 */ 1867 get : function(featureName) { 1868 1869 this.features || this.analyze(); 1870 return this.features[featureName.toLowerCase()]; 1871 1872 }, 1873 1874 1875 /** 1876 * Tests if this string ends with the specified suffix. 1877 * 1878 * @param {string} substr string the suffix. 1879 * 1880 * @returns {boolean} true if the character sequence represented by the argument is a suffix of 1881 * the character sequence represented by this object; false otherwise. * 1882 */ 1883 endsWith : function(substr) { 1884 1885 return endsWith(this._text, substr); 1886 1887 }, 1888 1889 /** 1890 * Compares this RiString to the specified object. The result is true if and only if the 1891 * argument is not null and is a RiString object that represents the same sequence of 1892 * characters as this object. 1893 * 1894 * @param {object} riString RiString object to compare this RiString against. 1895 * @returns {boolean} true if the RiString are equal; false otherwise. 1896 */ 1897 equals : function(riString) { 1898 1899 return riString._text === this._text; 1900 1901 }, 1902 1903 /** 1904 * Compares this RiString to another RiString, ignoring case considerations. 1905 * 1906 * @param {string | object} str String or RiString object to compare this RiString against 1907 * @returns {boolean} true if the argument is not null and the Strings are equal, ignoring 1908 * case; false otherwise. 1909 */ 1910 equalsIgnoreCase : function(str) { 1911 1912 if (typeof str === S) { 1913 1914 return str.toLowerCase() === this._text.toLowerCase(); 1915 } 1916 else { 1917 1918 return str.text().toLowerCase() === this._text.toLowerCase(); 1919 } 1920 1921 }, 1922 1923 /** 1924 * Gets/sets the text contained by this object 1925 * 1926 * @param {string} text (optional) 1927 * 1928 * @returns {object | string} the contained text (for sets) or this RiString (for gets) 1929 */ 1930 text : function(theText) { 1931 1932 if (arguments.length>0) { 1933 this._text = theText; 1934 this.features = undefined; 1935 return this; 1936 } 1937 return this._text; 1938 1939 }, 1940 1941 /** 1942 * Returns an array of part-of-speech tags, one per word, using RiTa.tokenize() and RiTa.posTag(). 1943 * 1944 * @returns {array} strings of pos, one per word 1945 */ 1946 pos : function() { 1947 1948 var words = RiTa.tokenize((this._text)); // was getPlaintext() 1949 var tags = PosTagger.tag(words); 1950 1951 for ( var i = 0, l = tags.length; i < l; i++) { 1952 if (!strOk(tags[i])) 1953 err("RiString: can't parse pos for:" + words[i]); 1954 } 1955 1956 return tags; 1957 1958 }, 1959 1960 /** 1961 * Returns the part-of-speech tag for the word at 'index', using RiTa.tokenize() and RiTa.posTag(). 1962 * 1963 * @param {number} index the word index 1964 * @returns {string} the pos 1965 */ 1966 posAt : function(index) { 1967 1968 var tags = this.pos(); 1969 1970 if (isNull(tags) || tags.length == 0 || index < 0 || index >= tags.length) 1971 return E; 1972 1973 return tags[index]; 1974 1975 }, 1976 1977 /** 1978 * Returns the word at 'index', according to RiTa.tokenize() 1979 * 1980 * @param {number} index the word index 1981 * @returns {string} the word 1982 */ 1983 wordAt : function(index) { 1984 1985 var words = RiTa.tokenize((this._text)); 1986 if (index < 0 || index >= words.length) 1987 return E; 1988 return words[index]; 1989 1990 }, 1991 1992 /** 1993 * Returns the number of words in the object, according to RiTa.tokenize(). 1994 * 1995 * @returns {number} number of words 1996 */ 1997 wordCount : function() { 1998 1999 if (!this._text.length) return 0; 2000 return this.words().length; 2001 2002 }, 2003 2004 /** 2005 * Returns the array of words in the object, via a call to RiTa.tokenize(). 2006 * 2007 * @returns {array} strings, one per word 2008 */ 2009 words : function() { //TODO: change to words() 2010 2011 return RiTa.tokenize(this._text); 2012 2013 }, 2014 2015 /** 2016 * Returns the index within this string of the first occurrence of the specified character. 2017 * 2018 * @param {string} searchstring (Required) or character to search for 2019 * @param {number} start (Optional) The start position in the string to start the search. If omitted, 2020 * the search starts from position 0 2021 * @returns {number} the first index of the matching pattern or -1 if none are found 2022 */ 2023 indexOf : function(searchstring, start) { 2024 2025 return this._text.indexOf(searchstring, start); 2026 2027 }, 2028 2029 /** 2030 * Inserts 'newWord' at 'wordIdx' and shifts each subsequent word accordingly. 2031 * 2032 * @returns {object} this RiString 2033 */ 2034 insertWordAt : function(newWord, wordIdx) { 2035 2036 var words = this.words(); 2037 if (newWord && newWord.length && wordIdx >= 0 && wordIdx < words.length) { 2038 2039 // filthy hack to preserve punctuation in 'newWord' 2040 words.splice(wordIdx,0, DeLiM+newWord+DeLiM); 2041 2042 2043 this.text( RiTa.untokenize(words).replace(new RegExp(DeLiM,'g'),E) ); 2044 } 2045 2046 return this; 2047 2048 }, 2049 2050 /** 2051 * Returns the index within this string of the last occurrence of the specified character. 2052 * 2053 * @param {string} searchstring The string to search for 2054 * @param {number} start (Optional) The start position in the string to start the search. If omitted, 2055 * the search starts from position 0 2056 * 2057 * @returns {number} the last index of the matching pattern or -1 if none are found 2058 */ 2059 lastIndexOf : function(searchstring, start) { 2060 2061 return this._text.lastIndexOf(searchstring, start); 2062 2063 }, 2064 2065 /** 2066 * Returns the length of this string. 2067 * 2068 * @returns {number} the length 2069 */ 2070 length : function() { 2071 2072 return this._text.length; 2073 2074 }, 2075 2076 /** 2077 * Searches for a match between a substring (or regular expression) and the contained 2078 * string, and _returns the matches 2079 * 2080 * @param {string} regex Regular expression 2081 * @returns {array} strings matches or empty array if none are found 2082 2083 */ 2084 match : function(regex) { 2085 2086 var result = this._text.match(regex); 2087 if(isNull(result)){return [];} else {return result;} 2088 2089 }, 2090 2091 2092 /** 2093 * Extracts a part of a string from this RiString 2094 * 2095 * @param {number} begin (Required) The index where to begin the extraction. First character is at 2096 * index 0 2097 * @param {number} end (Optional) Where to end the extraction. If omitted, slice() selects all 2098 * characters from the begin position to the end of the string 2099 * @returns {object} this RiString 2100 */ 2101 slice : function(begin, end) { 2102 2103 var res = this._text.slice(begin, end) || E; 2104 return this.text(res); 2105 2106 }, 2107 2108 /** 2109 * Replaces each substring of this string that matches the given regular expression with the 2110 * given replacement. 2111 * 2112 * @param {string | regex } pattern the pattern to be matched 2113 * @param {string} replacement the replacement sequence of char values 2114 * @returns {object} this RiString 2115 */ 2116 replaceAll : function(pattern, replacement) { 2117 2118 if (pattern && (replacement || replacement==='')) { 2119 this._text = replaceAll(this._text, pattern, replacement); 2120 } 2121 return this; 2122 2123 }, 2124 2125 /** 2126 * Replaces the character at 'idx' with 'replaceWith'. If the specified 'idx' is less than 2127 * zero, or beyond the length of the current text, there will be no effect. 2128 * 2129 * @param {number} idx the character index 2130 * @param {string} replaceWith the replacement 2131 * @returns {object} this RiString 2132 */ 2133 replaceCharAt : function(idx, replaceWith) { 2134 2135 if (idx < 0 || idx >= this.length()) 2136 return this; 2137 2138 var s = this.text(); 2139 var beg = s.substring(0, idx); 2140 var end = s.substring(idx + 1); 2141 var s2 = null; 2142 2143 if (replaceWith) 2144 s2 = beg + replaceWith + end; 2145 else 2146 s2 = beg + end; 2147 2148 return this.text(s2); 2149 2150 }, 2151 2152 /** 2153 * Replaces the first instance of 'regex' with 'replaceWith' 2154 * 2155 * @param {string | regex} regex the pattern 2156 * @param {string} replaceWith the replacement 2157 * 2158 * @returns this RiString 2159 */ 2160 replaceFirst : function(regex, replaceWith) { 2161 2162 this._text = this._text.replace(regex, replaceWith); 2163 return this; 2164 }, 2165 2166 /** 2167 * Replaces the last instance of 'regex' with 'replaceWith' 2168 * 2169 * @param {string | regex} regex the pattern 2170 * @param {string} replaceWith the replacement 2171 * 2172 * @returns this RiString 2173 */ 2174 replaceLast : function(regex, replaceWith) { 2175 2176 if (!regex) return this; 2177 2178 if (Type.is(regex,S)) { 2179 log('creating regex for: '+regex); 2180 regex = new RegExp(regex); 2181 } 2182 2183 log('regex: '+regex); 2184 2185 var ret = this._text; 2186 2187 if (ret.match(regex)) { 2188 var target = RegExp.lastMatch; 2189 var tmp = this._text.split(target); 2190 var last = tmp.pop(); 2191 tmp[tmp.length-1] += replaceWith + last; 2192 ret = tmp.join(target); 2193 } 2194 2195 this._text = ret; 2196 2197 return this; 2198 2199 // if (this._text.lastIndexOf(regex)>=0){ //this do not work for regex.. 2200 // var ind = this._text.lastIndexOf(regex); 2201 // var before = this._text.substring(0, ind); 2202 // var after = this._text.substring(ind+regex.length); 2203 // 2204 // var finished = before + replaceWith + after; 2205 // this._text = finished; 2206 // return this; 2207 // } 2208 // } 2209 }, 2210 2211 /** 2212 * Replaces the word at 'wordIdx' with 'newWord' 2213 * 2214 * @param {number} wordIdx the index 2215 * @param {string} newWord the replacement 2216 * 2217 * @returns {object} this RiString 2218 */ 2219 replaceWordAt : function(wordIdx, newWord) { 2220 2221 var words = this.words(); 2222 2223 if (wordIdx >= 0 && wordIdx < words.length) { 2224 2225 words[wordIdx] = newWord; 2226 2227 this.text(RiTa.untokenize(words)); 2228 } 2229 2230 return this; 2231 2232 }, 2233 2234 /** 2235 * Split a RiString into an array of sub-RiString and return the new array. 2236 * 2237 * If an empty string ("") is used as the separator, the string is split between each character. 2238 * 2239 * @param {string} separator (Optional) Specifies the character to use for splitting the string. If 2240 * omitted, the entire string will be returned. If an empty string ("") is used as the separator, 2241 * the string is split between each character. 2242 * 2243 * @param {number} limit (Optional) An integer that specifies the number of splits 2244 * 2245 * @returns {array} RiStrings 2246 */ 2247 split : function(separator, limit) { 2248 2249 var parts = this._text.split(separator, limit); 2250 var rs = []; 2251 for ( var i = 0; i < parts.length; i++) { 2252 if (!isNull(parts[i])) 2253 rs.push(new RiString(parts[i])); 2254 } 2255 return rs; 2256 2257 }, 2258 2259 /** 2260 * Tests if this string starts with the specified prefix. 2261 * 2262 * @param {string} substr string the prefix 2263 * @returns {boolean} true if the character sequence represented by the argument is a prefix of 2264 * the character sequence represented by this string; false otherwise. Note also 2265 * that true will be returned if the argument is an empty string or is equal to this 2266 * RiString object as determined by the equals() method. 2267 */ 2268 startsWith : function(substr) { 2269 2270 return this.indexOf(substr) == 0; 2271 2272 }, 2273 2274 /** 2275 * Extracts the characters from this objects contained string, beginning at 'start' and 2276 * continuing through the specified number of characters, and sets the current text to be 2277 * that string. (from Javascript String) 2278 * 2279 * @param {number} start The index where to start the extraction. First character is at 2280 * index 0 2281 * @param {number} length (optional) The index where to stop the extraction. If omitted, it extracts the 2282 * rest of the string 2283 * @returns {object} this RiString 2284 */ 2285 substr : function(start, length) { 2286 2287 var res = this._text.substr(start, length); 2288 return this.text(res); 2289 2290 }, 2291 2292 /** 2293 * Extracts the characters from a string, between two specified indices, and sets the 2294 * current text to be that string. 2295 * 2296 * @param {number} from The index where to start the extraction. First character is at 2297 * index 0 2298 * @param {number} to (optional) The index where to stop the extraction. If omitted, it extracts the 2299 * rest of the string 2300 * @returns {object} this RiString 2301 */ 2302 substring : function(from, to) { 2303 2304 return this.text(this._text.substring(from, to)); 2305 2306 }, 2307 2308 /** 2309 * Converts this object to an array of RiString objects, one per character 2310 * 2311 * @returns {array} RiStrings with each letter as its own RiString element 2312 */ 2313 toCharArray : function() { 2314 var parts = this._text.split(E); 2315 var rs = []; 2316 for ( var i = 0; i < parts.length; i++) { 2317 if (!isNull(parts[i])) 2318 rs.push(parts[i]); 2319 } 2320 return rs; 2321 }, 2322 2323 /** 2324 * Converts all of the characters in this RiString to lower case 2325 * 2326 * @returns {object} this RiString 2327 */ 2328 toLowerCase : function() { 2329 2330 return this.text(this._text.toLowerCase()); 2331 2332 }, 2333 2334 /** 2335 * Returns the contained string object 2336 * 2337 * @returns {string} 2338 */ 2339 toString : function() { 2340 2341 return "RiString["+this._text+"]"; 2342 2343 }, 2344 2345 /** 2346 * Returns true if and only if this string contains the specified sequence of char values. 2347 * 2348 * @param {string} text text to be checked 2349 * @returns {boolean} 2350 */ 2351 containsWord : function(text) { 2352 2353 return this.indexOf(text) > -1; 2354 2355 }, 2356 2357 /** 2358 * Converts all of the characters in this RiString to upper case 2359 * 2360 * @returns {object} this RiString 2361 */ 2362 toUpperCase : function() { 2363 2364 return this.text(this._text.toUpperCase()); 2365 2366 }, 2367 2368 /** 2369 * Returns a copy of the string, with leading and trailing whitespace omitted. 2370 * 2371 * @returns {object} this RiString 2372 */ 2373 trim : function() { 2374 2375 return this.text(trim(this._text)); 2376 2377 }, 2378 2379 /** 2380 * Returns the character at the given 'index', or empty string if none is found 2381 * 2382 * @param {number} index index of the character 2383 * @returns {string} the character 2384 */ 2385 charAt : function(index) { 2386 2387 return this._text.charAt(index); 2388 2389 }, 2390 2391 /** 2392 * Concatenates the text from another RiString at the end of this one 2393 * 2394 * @returns {object} this RiString 2395 */ 2396 concat : function(riString) { 2397 2398 return this._text.concat(riString.text()); 2399 2400 }, 2401 2402 /** 2403 * Removes the character at the specified index 2404 * 2405 * @param {number} idx the index 2406 * @returns {object} this RiString 2407 */ 2408 removeCharAt : function(idx) { 2409 2410 this.text(this._text.substring(0, idx).concat(this._text.substring(idx + 1))); 2411 2412 } 2413 2414 } 2415 2416 2417 // //////////////////////////////////////////////////////////// 2418 // RiGrammar 2419 // //////////////////////////////////////////////////////////// 2420 2421 /** 2422 * @name RiGrammar 2423 * @class Implementation of a (probabilistic) context-free grammar (with specific 2424 * literary extensions) that performs generation from user-specified grammars. 2425 */ 2426 /* <pre> 2427 * 2428 rg = new RiGrammar("mygrammar.g"); 2429 System.out.println(rg.expand());</pre> 2430 * 2431 * 2432 * RiTa grammar files are JSON text files that follow the format below: 2433 * <pre> myGrammar = { 2434 <start> 2435 <rule1> | <rule2> | <rule3> 2436 } 2437 2438 { 2439 <rule2> 2440 terminal1 | 2441 terminal2 | <rule1> 2442 # this is a comment 2443 } 2444 ...</pre> 2445 * <b>Primary methods of interest:</b> 2446 * <ul> 2447 * <li><code>expand()</code> which simply begins at the <start> state and 2448 * generates a string of terminals from the grammar.<p> 2449 * <li><code>expandFrom(String)</code> which begins with the argument 2450 * String (which can consist of both non-terminals and terminals,) 2451 * and expands from there. Notice that <code>expand()</code> is simply 2452 * a convenient version of <code>expandFrom("<start>");</code>.<p> 2453 * <li><code>expandWith(String, String)</code> takes 2 String arguments, the 1st 2454 * (a terminal) is guaranteed to be substituted for the 2nd (a non-terminal). Once this 2455 * substitution is made, the algorithm then works backwards (up the tree from the leaf) 2456 * ensuring that the terminal (terminal1) appears in the output string. 2457 * For example, with the grammar fragment above, one might call:<p> 2458 <pre> 2459 grammar.expandWith(terminal1, "<rule2>"); 2460 </pre> 2461 * assuring not only that <code><rule2></code>will be used at least 2462 * once in the generation process, but that when it is, it will be replaced 2463 * by the terminal "hello". 2464 *</ul> 2465 * 2466 *<li>A RiGrammar object will assign (by default) equal weights to all choices in a rule. 2467 *One can adjust the weights by adding 'multipliers' as follows: (in the rule below, 2468 * 'terminal1' will be chosen twice as often as the 2 other choices. 2469 * <pre> { 2470 <rule2> 2471 [2] terminal1 | 2472 terminal2 | <rule1> 2473 }</pre> 2474 2475 *<li>The RiGrammar object supports callbacks, from your grammar, back into your code. 2476 * To generate a callback, add the method call in your grammar, surrounded by back-ticks, as follows: 2477 * <pre> 2478 * { 2479 * <rule2> 2480 * The cat ran after the `getRhyme("cat");` | 2481 * The <noun> ran after the `pluralize(<noun>);` 2482 * }</pre> 2483 * 2484 * Any number of arguments may be passed in a callback, but for each call, 2485 * there must be a corresponding method in the sketch, e.g., 2486 * 2487 * <pre> 2488 * function pluralize(String s) { 2489 * ... 2490 * } 2491 * </pre> 2492 * 2493 * @author dhowe 2494 */ 2495 RiGrammar = makeClass(); 2496 2497 RiGrammar.START_RULE = "<start>"; 2498 RiGrammar.OPEN_RULE_CHAR = "<"; 2499 RiGrammar.CLOSE_RULE_CHAR = ">"; 2500 RiGrammar.PROB_PATT = /(.*[^\s])\s*\[([0-9.]+)\](.*)/; 2501 RiGrammar.OR_PATT = /\s*\|\s*/; 2502 RiGrammar.EXEC_PATT = /`[^`]+`/g; 2503 RiGrammar.STRIP_TICKS = /`([^`]+)`/g 2504 2505 /** 2506 * Set/gets the execDisabled flag. Set to true (default=false) 2507 * if you don't want to use the exec mechanism for callbacks. Useful if you want 2508 * to include backticks or method calls as terminals in your grammar. 2509 */ 2510 RiGrammar._execDisabled = function(disableExec) 2511 { 2512 if (arguments.length==1) { 2513 RiGrammar._execDisabled = disableExec; 2514 } 2515 return RiGrammar._execDisabled; 2516 } 2517 2518 RiGrammar.prototype = { 2519 2520 /** 2521 * Initializes a grammar from an object or JSON string containing the rules 2522 * 2523 * @param {string | object} grammar containing the grammar rules 2524 */ 2525 initialize : function(grammar) { 2526 2527 if (Type.is(grammar,O) || Type.is(grammar,O)) 2528 err('Expects OBJECT or STRING'); 2529 2530 this._rules = {}; 2531 this._execDisabled = false; 2532 grammar && this.setGrammar(grammar); 2533 }, 2534 2535 /** 2536 * Loads a JSON grammar via AJAX call to 'url', replacing any existing grammar. 2537 * @param {string} url of JSON file containing the grammar rules 2538 * @returns {object} this RiGrammar 2539 */ 2540 _load : function(url) { 2541 2542 this.reset(); 2543 2544 err("Implement me!"); 2545 2546 return this; 2547 2548 }, 2549 2550 /** 2551 * Initializes a grammar from an object or JSON string containing the rules (rather than a file) 2552 * and replacing any existing grammar. 2553 * @param {string | object} grammar containing the grammar rules 2554 * @returns {object} this RiGrammar 2555 */ 2556 setGrammar : function(grammar) { 2557 2558 this.reset(); 2559 2560 grammar = (typeof grammar == S) ? JSON.parse(grammar) : grammar 2561 2562 for (var rule in grammar) 2563 this.addRule(rule, grammar[rule]); 2564 2565 return this; 2566 2567 }, 2568 2569 /** 2570 * Returns the current set of rules as an associative array: {names -> definitions} 2571 * @returns {object} 2572 */ 2573 getRules : function() { 2574 2575 return this._rules; 2576 2577 }, 2578 2579 2580 /** 2581 * Deletes the named rule from the grammar 2582 * @returns {object} this RiGrammar 2583 */ 2584 removeRule : function(name) { 2585 2586 name = this._normalizeRuleName(name); 2587 delete this._rules[name]; 2588 return this; 2589 2590 }, 2591 2592 /** 2593 * Makes a (deep) copy of this object 2594 * 2595 * @returns {object} this RiGrammar 2596 */ 2597 clone : function() { // TODO: test me well 2598 2599 var tmp = RiGrammar(); 2600 for (var name in this._rules) { 2601 tmp._rules[name] = this._rules[name]; 2602 } 2603 return tmp; 2604 2605 }, 2606 2607 2608 /** 2609 * Adds a rule to the existing grammar, replacing any existing rule with the same name 2610 * @param {string} name 2611 * @param {string} ruleStr 2612 * @param {number} weight 2613 * @returns {object} this RiGrammar 2614 */ 2615 addRule : function(name, ruleStr, weight) 2616 { 2617 var dbug = false; 2618 2619 weight = (isNull(weight) ? 1.0 : weight); // default 2620 2621 name = this._normalizeRuleName(name); 2622 2623 if (dbug) log("addRule: "+name+ " -> "+ruleStr+" ["+weight+"]"); 2624 2625 var ruleset = ruleStr.split(RiGrammar.OR_PATT); 2626 //ruleset = "<noun-phrase> <verb-phrase>"; 2627 2628 for ( var i = 0; i < ruleset.length; i++) { 2629 2630 var rule = ruleset[i]; 2631 var prob = weight; 2632 var m = RiGrammar.PROB_PATT.exec(rule); 2633 2634 if (m != null) // found weighting 2635 { 2636 if (dbug) { 2637 log("Found weight for " + rule); 2638 for (i = 0; i < m.length; i++) 2639 log(" " + i + ") '" + m[i] + "'"); 2640 } 2641 rule = m[1] + m[3]; 2642 prob = m[2]; 2643 if (dbug) log("weight=" + prob + " rule='" + rule + "'"); 2644 } 2645 2646 if (this.hasRule(name)) { 2647 if (dbug)log("rule exists"); 2648 var temp = this._rules[name]; 2649 temp[rule] = prob; 2650 } 2651 else { 2652 2653 // log("new rule"); 2654 var temp2 = {}; 2655 temp2[rule] = prob; 2656 this._rules[name] = temp2; 2657 if (dbug)log("added rule: "+name); 2658 } 2659 } 2660 return this; 2661 2662 }, 2663 2664 /** 2665 * Clears all rules in the current grammar 2666 * @returns {object} this RiGrammar 2667 */ 2668 reset : function() { 2669 2670 this._rules = {}; 2671 return this; 2672 2673 }, 2674 2675 /** 2676 * @param {string} pre name 2677 */ 2678 getRule : function(pre) { 2679 2680 pre = this._normalizeRuleName(pre); 2681 2682 // log("getRule("+pre+")"); 2683 var tmp = this._rules[pre]; 2684 var name, cnt = 0; 2685 2686 for (name in tmp) cnt++; // count the matching rules 2687 2688 if (cnt == 1) { 2689 //log("1returning: "+name+" / "+typeof name); 2690 return name; 2691 } 2692 else if (cnt > 1) { 2693 2694 var sr = this._getStochasticRule(tmp); 2695 //log("2returning: "+sr+" / "+typeof sr); 2696 return sr; 2697 } 2698 else { 2699 err("No rule found for: "+pre); 2700 } 2701 2702 }, 2703 2704 /** 2705 * Prints the grammar rules to the console in human-readable format (useful for debugging) 2706 * @returns {object} this RiGrammar 2707 */ 2708 print : function() { 2709 2710 if (console) { 2711 console.log("Grammar----------------"); 2712 for ( var name in this._rules) { 2713 2714 console.log(" '" + name + "' -> "); 2715 var choices = this._rules[name]; 2716 for ( var p in choices) { 2717 console.log(" '" + p + "' [" + choices[p] + "]"); 2718 } 2719 } 2720 console.log("-----------------------"); 2721 } 2722 return this; 2723 2724 }, 2725 2726 hasRule : function(name) { 2727 2728 //log("hasRule("+name+")"); 2729 name = this._normalizeRuleName(name); 2730 return (typeof this._rules[name] !== 'undefined'); 2731 2732 }, 2733 2734 /** 2735 * Expands a grammar from its '<start>' symbol 2736 * @returns {string} 2737 */ 2738 expand : function() { 2739 2740 return this.expandFrom(RiGrammar.START_RULE); 2741 2742 }, 2743 2744 /** 2745 * Expands the grammar after replacing an instance of the non-terminal 2746 * 'symbol' with the String in 'literal'. 2747 * <P> 2748 * Guarantees that 'literal' will be in the final expanded String, 2749 * assuming at least one instance of 'symbol' in the Grammar. 2750 * @param literal 2751 * @param symbol 2752 * 2753 * @returns {string} expanded text 2754 */ 2755 expandWith : function(literal, symbol) { // TODO: finish 2756 2757 //error("oops, caught in-between versions"); 2758 2759 var gr = this.clone(); 2760 2761 var match = false; 2762 for ( var name in gr._rules) { 2763 if (name===symbol) { 2764 var obj = {}; 2765 obj[literal] = 1.0; 2766 gr._rules[name] = obj; 2767 match = true; 2768 } 2769 } 2770 if (!match) 2771 err("Rule '"+symbol+"' not found in grammar"); 2772 2773 // TODO: tmp, awful hack, write this correctly 2774 var tries, maxTries = 500; 2775 for (tries = 0 ;tries < maxTries; tries++) { 2776 var s = gr.expand(); 2777 if (s.indexOf(literal)>-1) 2778 return s; 2779 } 2780 err("\n[WARN] RiGrammar failed to complete after "+tries+" tries\n"); 2781 2782 }, 2783 2784 /** 2785 * @param input 2786 * @returns this 2787 */ 2788 _handleExec : function(input) { // TODO: private 2789 2790 if (!input || !input.length) return E; 2791 2792 // strip backticks and eval 2793 var exec = input.replace(RiGrammar.STRIP_TICKS, "$1"); 2794 2795 try { 2796 //log("handleExec: "+exec); 2797 input = eval(exec); 2798 } 2799 catch (e) { 2800 warn("Error evaluating: "+input+" ignoring backticks\n "+e.message); 2801 } 2802 return input; 2803 }, 2804 2805 /** 2806 * Expands the grammar, starting from the given symbol. 2807 * RiGrammar.expand() is equivalent to RiGrammar.expandFrom(''). 2808 * 2809 * @param {string} rule 2810 * @returns {string} 2811 * 2812 */ 2813 expandFrom : function(rule) { 2814 2815 if (!this.hasRule(rule)) { 2816 warn("Rule not found: " + rule + "\nRules: "); 2817 (!RiTa.SILENT) && this.print(); 2818 } 2819 2820 var iterations = 0; 2821 var maxIterations = 1000; 2822 while (++iterations < maxIterations) { 2823 2824 //log("expand: '"+rule +"'"); 2825 var next = this._expandRule(rule); 2826 if (!next) { 2827 2828 // we're done, check for back-ticked strings to eval? 2829 2830 (!this._execDisabled) && (rule=rule.replace(RiGrammar.EXEC_PATT, this._handleExec)); 2831 2832 break; 2833 } 2834 rule = next; 2835 } 2836 2837 if (iterations >= maxIterations) 2838 warn("max number of iterations reached: " + maxIterations); 2839 2840 return rule; 2841 2842 }, 2843 2844 // Privates (can we hide these?) ---------------- 2845 2846 _expandRule : function(prod) { //private 2847 2848 var dbug = false; 2849 if (dbug) log("_expandRule(" + prod + ")"); 2850 2851 for ( var name in this._rules) { 2852 2853 var entry = this._rules[name]; 2854 if (dbug) log(" name=" + name+" entry=" + entry+" prod=" + prod+" idx=" + idx); 2855 var idx = prod.indexOf(name); 2856 2857 if (idx >= 0) { 2858 2859 var pre = prod.substring(0, idx); 2860 var expanded = this.getRule(name); 2861 var post = prod.substring(idx + name.length); 2862 2863 if (dbug) log(" pre=" + pre+" expanded=" + expanded+" post=" + post+" result=" + pre + expanded + post); 2864 2865 return (pre + expanded + post); 2866 } 2867 2868 // do the exec check here, in while loop() 2869 } 2870 // what happens if we get here? no expansions left, return? 2871 }, 2872 2873 _normalizeRuleName : function(pre) { 2874 2875 if (!strOk(pre)) return pre; 2876 2877 if (!startsWith(pre, RiGrammar.OPEN_RULE_CHAR)) 2878 pre = RiGrammar.OPEN_RULE_CHAR + pre; 2879 2880 if (!endsWith(pre,RiGrammar.CLOSE_RULE_CHAR)) 2881 pre += RiGrammar.CLOSE_RULE_CHAR; 2882 2883 if (pre.indexOf('>>')>0) err(">>"); 2884 2885 return pre; 2886 2887 }, 2888 2889 // private?? (add structure test case) 2890 _getStochasticRule : function(temp) { // map 2891 2892 var dbug = false; 2893 2894 if (dbug) log("_getStochasticRule(" + temp + ")"); 2895 2896 var p = Math.random(); 2897 var result, total = 0; 2898 for ( var name in temp) { 2899 total += parseFloat(temp[name]); 2900 } 2901 2902 if (dbug) log("total=" + total+"p=" + p); 2903 2904 for ( var name in temp) { 2905 if (dbug) log(" name=" + name); 2906 var amt = temp[name] / total; 2907 2908 if (dbug) log("amt=" + amt); 2909 2910 if (p < amt) { 2911 result = name; 2912 if (dbug)log("hit!=" + name); 2913 break; 2914 } else { 2915 p -= amt; 2916 } 2917 } 2918 return result; 2919 } 2920 2921 2922 } // end RiGrammar 2923 2924 2925 var Easing = { 2926 2927 Linear: { 2928 2929 None: function ( k ) { 2930 2931 return k; 2932 2933 } 2934 2935 }, 2936 2937 Quadratic: { 2938 2939 In: function ( k ) { 2940 2941 return k * k; 2942 2943 }, 2944 2945 Out: function ( k ) { 2946 2947 return k * ( 2 - k ); 2948 2949 }, 2950 2951 InOut: function ( k ) { 2952 2953 if ( ( k *= 2 ) < 1 ) return 0.5 * k * k; 2954 return - 0.5 * ( --k * ( k - 2 ) - 1 ); 2955 2956 } 2957 2958 }, 2959 2960 Cubic: { 2961 2962 In: function ( k ) { 2963 2964 return k * k * k; 2965 2966 }, 2967 2968 Out: function ( k ) { 2969 2970 return --k * k * k + 1; 2971 2972 }, 2973 2974 InOut: function ( k ) { 2975 2976 if ( ( k *= 2 ) < 1 ) return 0.5 * k * k * k; 2977 return 0.5 * ( ( k -= 2 ) * k * k + 2 ); 2978 2979 } 2980 2981 }, 2982 2983 Quartic: { 2984 2985 In: function ( k ) { 2986 2987 return k * k * k * k; 2988 2989 }, 2990 2991 Out: function ( k ) { 2992 2993 return 1 - --k * k * k * k; 2994 2995 }, 2996 2997 InOut: function ( k ) { 2998 2999 if ( ( k *= 2 ) < 1) return 0.5 * k * k * k * k; 3000 return - 0.5 * ( ( k -= 2 ) * k * k * k - 2 ); 3001 3002 } 3003 3004 }, 3005 3006 Quintic: { 3007 3008 In: function ( k ) { 3009 3010 return k * k * k * k * k; 3011 3012 }, 3013 3014 Out: function ( k ) { 3015 3016 return --k * k * k * k * k + 1; 3017 3018 }, 3019 3020 InOut: function ( k ) { 3021 3022 if ( ( k *= 2 ) < 1 ) return 0.5 * k * k * k * k * k; 3023 return 0.5 * ( ( k -= 2 ) * k * k * k * k + 2 ); 3024 3025 } 3026 3027 }, 3028 3029 Sinusoidal: { 3030 3031 In: function ( k ) { 3032 3033 return 1 - Math.cos( k * Math.PI / 2 ); 3034 3035 }, 3036 3037 Out: function ( k ) { 3038 3039 return Math.sin( k * Math.PI / 2 ); 3040 3041 }, 3042 3043 InOut: function ( k ) { 3044 3045 return 0.5 * ( 1 - Math.cos( Math.PI * k ) ); 3046 3047 } 3048 3049 }, 3050 3051 Exponential: { 3052 3053 In: function ( k ) { 3054 3055 return k === 0 ? 0 : Math.pow( 1024, k - 1 ); 3056 3057 }, 3058 3059 Out: function ( k ) { 3060 3061 return k === 1 ? 1 : 1 - Math.pow( 2, - 10 * k ); 3062 3063 }, 3064 3065 InOut: function ( k ) { 3066 3067 if ( k === 0 ) return 0; 3068 if ( k === 1 ) return 1; 3069 if ( ( k *= 2 ) < 1 ) return 0.5 * Math.pow( 1024, k - 1 ); 3070 return 0.5 * ( - Math.pow( 2, - 10 * ( k - 1 ) ) + 2 ); 3071 3072 } 3073 3074 }, 3075 3076 Circular: { 3077 3078 In: function ( k ) { 3079 3080 return 1 - Math.sqrt( 1 - k * k ); 3081 3082 }, 3083 3084 Out: function ( k ) { 3085 3086 return Math.sqrt( 1 - --k * k ); 3087 3088 }, 3089 3090 InOut: function ( k ) { 3091 3092 if ( ( k *= 2 ) < 1) return - 0.5 * ( Math.sqrt( 1 - k * k) - 1); 3093 return 0.5 * ( Math.sqrt( 1 - ( k -= 2) * k) + 1); 3094 3095 } 3096 3097 }, 3098 3099 Elastic: { 3100 3101 In: function ( k ) { 3102 3103 var s, a = 0.1, p = 0.4; 3104 if ( k === 0 ) return 0; 3105 if ( k === 1 ) return 1; 3106 if ( !a || a < 1 ) { a = 1; s = p / 4; } 3107 else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI ); 3108 return - ( a * Math.pow( 2, 10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) ); 3109 3110 }, 3111 3112 Out: function ( k ) { 3113 3114 var s, a = 0.1, p = 0.4; 3115 if ( k === 0 ) return 0; 3116 if ( k === 1 ) return 1; 3117 if ( !a || a < 1 ) { a = 1; s = p / 4; } 3118 else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI ); 3119 return ( a * Math.pow( 2, - 10 * k) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) + 1 ); 3120 3121 }, 3122 3123 InOut: function ( k ) { 3124 3125 var s, a = 0.1, p = 0.4; 3126 if ( k === 0 ) return 0; 3127 if ( k === 1 ) return 1; 3128 if ( !a || a < 1 ) { a = 1; s = p / 4; } 3129 else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI ); 3130 if ( ( k *= 2 ) < 1 ) return - 0.5 * ( a * Math.pow( 2, 10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) ); 3131 return a * Math.pow( 2, -10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) * 0.5 + 1; 3132 3133 } 3134 3135 }, 3136 3137 Back: { 3138 3139 In: function ( k ) { 3140 3141 var s = 1.70158; 3142 return k * k * ( ( s + 1 ) * k - s ); 3143 3144 }, 3145 3146 Out: function ( k ) { 3147 3148 var s = 1.70158; 3149 return --k * k * ( ( s + 1 ) * k + s ) + 1; 3150 3151 }, 3152 3153 InOut: function ( k ) { 3154 3155 var s = 1.70158 * 1.525; 3156 if ( ( k *= 2 ) < 1 ) return 0.5 * ( k * k * ( ( s + 1 ) * k - s ) ); 3157 return 0.5 * ( ( k -= 2 ) * k * ( ( s + 1 ) * k + s ) + 2 ); 3158 3159 } 3160 3161 }, 3162 3163 Bounce: { 3164 3165 In: function ( k ) { 3166 3167 return 1 - Easing.Bounce.Out( 1 - k ); 3168 3169 }, 3170 3171 Out: function ( k ) { 3172 3173 if ( k < ( 1 / 2.75 ) ) { 3174 3175 return 7.5625 * k * k; 3176 3177 } else if ( k < ( 2 / 2.75 ) ) { 3178 3179 return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75; 3180 3181 } else if ( k < ( 2.5 / 2.75 ) ) { 3182 3183 return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375; 3184 3185 } else { 3186 3187 return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375; 3188 3189 } 3190 3191 }, 3192 3193 InOut: function ( k ) { 3194 3195 if ( k < 0.5 ) return Easing.Bounce.In( k * 2 ) * 0.5; 3196 return Easing.Bounce.Out( k * 2 - 1 ) * 0.5 + 0.5; 3197 3198 } 3199 3200 } 3201 3202 } 3203 3204 var Interpolation = { 3205 3206 Linear: function ( v, k ) { 3207 3208 var m = v.length - 1, f = m * k, i = Math.floor( f ), fn = Interpolation.Utils.Linear; 3209 3210 if ( k < 0 ) return fn( v[ 0 ], v[ 1 ], f ); 3211 if ( k > 1 ) return fn( v[ m ], v[ m - 1 ], m - f ); 3212 3213 return fn( v[ i ], v[ i + 1 > m ? m : i + 1 ], f - i ); 3214 3215 }, 3216 3217 Bezier: function ( v, k ) { 3218 3219 var b = 0, n = v.length - 1, pw = Math.pow, bn = Interpolation.Utils.Bernstein, i; 3220 3221 for ( i = 0; i <= n; i++ ) { 3222 b += pw( 1 - k, n - i ) * pw( k, i ) * v[ i ] * bn( n, i ); 3223 } 3224 3225 return b; 3226 3227 }, 3228 3229 CatmullRom: function ( v, k ) { 3230 3231 var m = v.length - 1, f = m * k, i = Math.floor( f ), fn = Interpolation.Utils.CatmullRom; 3232 3233 if ( v[ 0 ] === v[ m ] ) { 3234 3235 if ( k < 0 ) i = Math.floor( f = m * ( 1 + k ) ); 3236 3237 return fn( v[ ( i - 1 + m ) % m ], v[ i ], v[ ( i + 1 ) % m ], v[ ( i + 2 ) % m ], f - i ); 3238 3239 } else { 3240 3241 if ( k < 0 ) return v[ 0 ] - ( fn( v[ 0 ], v[ 0 ], v[ 1 ], v[ 1 ], -f ) - v[ 0 ] ); 3242 if ( k > 1 ) return v[ m ] - ( fn( v[ m ], v[ m ], v[ m - 1 ], v[ m - 1 ], f - m ) - v[ m ] ); 3243 3244 return fn( v[ i ? i - 1 : 0 ], v[ i ], v[ m < i + 1 ? m : i + 1 ], v[ m < i + 2 ? m : i + 2 ], f - i ); 3245 3246 } 3247 3248 }, 3249 3250 Utils: { 3251 3252 Linear: function ( p0, p1, t ) { 3253 3254 return ( p1 - p0 ) * t + p0; 3255 3256 }, 3257 3258 Bernstein: function ( n , i ) { 3259 3260 var fc = Interpolation.Utils.Factorial; 3261 return fc( n ) / fc( i ) / fc( n - i ); 3262 3263 }, 3264 3265 Factorial: ( function () { 3266 3267 var a = [ 1 ]; 3268 3269 return function ( n ) { 3270 3271 var s = 1, i; 3272 if ( a[ n ] ) return a[ n ]; 3273 for ( i = n; i > 1; i-- ) s *= i; 3274 return a[ n ] = s; 3275 3276 } 3277 3278 } )(), 3279 3280 CatmullRom: function ( p0, p1, p2, p3, t ) { 3281 3282 var v0 = ( p2 - p0 ) * 0.5, v1 = ( p3 - p1 ) * 0.5, t2 = t * t, t3 = t * t2; 3283 return ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1; 3284 3285 } 3286 3287 } 3288 3289 } 3290 3291 ////////////////////////////////////////////////////////////////////// 3292 ////////// RiText 3293 ////////////////////////////////////////////////////////////////////// 3294 3295 /** 3296 * @name RiText 3297 * 3298 * @class RiTa's text display object. Wraps an instance of RiString to provide utility 3299 * methods for typography, text effects, animation, etc. Uses either the native canvas 3300 * renderer or the Processing renderer (when included) 3301 * 3302 * @property {number} x The x position 3303 * @property {number} y The y position 3304 */ 3305 RiText = makeClass(); 3306 3307 ////////////////////////////////////////////////////////////////////// 3308 //////// RiText statics 3309 ////////////////////////////////////////////////////////////////////// 3310 3311 /** 3312 * Static container for properties related to the update/render loop 3313 */ 3314 RiText._animator = { 3315 loopId : -1, 3316 actualFPS : 0, 3317 targetFPS : 60, 3318 isLooping : false, 3319 frameCount : 0, 3320 loopStarted : false, 3321 framesSinceLastFPS : 0, 3322 callbackDisabled : false, 3323 timeSinceLastFPS : Date.now() 3324 } 3325 3326 /** 3327 * Starts a timer that calls 'onRiTaEvent' or the specified callback every 'period' 3328 * seconds 3329 * 3330 * @param {number} period 3331 * @param {function} callback called every 'period' seconds 3332 * @returns {number} the unique id for the timer 3333 */ 3334 RiText.timer = function(period, callback) { 3335 3336 return RiTa.timer.apply(this,arguments); 3337 }, 3338 3339 /** 3340 * Returns the number of frames since the start of the sketch 3341 * @returns {number} the number of frames 3342 */ 3343 RiText.frameCount = function() { 3344 return RiText._animator.frameCount; 3345 } 3346 3347 /** 3348 * Immediately stops the current animation loop and clears 3349 */ 3350 RiText.noLoop = function() { 3351 var an = RiText._animator; 3352 an.isLooping = false; 3353 an.loopStarted = false; 3354 an.clearInterval(loopId); 3355 } 3356 3357 /** 3358 * Starts an animation loop that calls the specified callback (usually 'draw') 3359 * at the specified fps 3360 * 3361 * @param {function} callback the animation callback (optional, default=60) 3362 * @param {number} fps the target framesPerSecond (optional, default='draw') 3363 * <pre> 3364 * Examples: 3365 * RiText.loop(); 3366 * RiText.loop('draw'); 3367 * RiText.loop(30); 3368 * RiText.loop(draw, 10); 3369 * </pre> 3370 */ 3371 RiText.loop = function(callbackFun, fps) { 3372 3373 var a = arguments, g = RiText.renderer, an = RiText._animator, callback = window['draw']; 3374 3375 if (g._type() === 'Processing') return; // let P5 do its own loop? 3376 3377 if (an.loopStarted) return; 3378 3379 switch (a.length) { 3380 3381 case 1: 3382 3383 if (a[0]) { 3384 var type = Type.get(a[0]); 3385 if (type == F) { 3386 callback = a[0]; 3387 } 3388 else if (type == N) { 3389 an.targetFPS = a[0]; 3390 } 3391 } 3392 break; 3393 3394 case 2: 3395 3396 if (a[0]) { 3397 3398 var type = Type.get(a[0]); 3399 if (type == F) { 3400 callback = a[0]; 3401 } 3402 type = Type.get(a[1]) 3403 if (type == N) { 3404 an.targetFPS = a[1]; 3405 } 3406 } 3407 break; 3408 } 3409 3410 an.timeSinceLastFPS = Date.now(), an.framesSinceLastFPS = 0, mps = 1E3 / an.targetFPS; 3411 3412 if (callback && !an.callbackDisabled) { 3413 3414 an.loopId = window.setInterval(function() { 3415 3416 try { 3417 3418 callback(); 3419 3420 var sec = (Date.now() - an.timeSinceLastFPS) / 1E3; 3421 var fps = ++an.framesSinceLastFPS / sec; 3422 3423 if (sec > 0.5) { 3424 an.timeSinceLastFPS = Date.now(); 3425 an.framesSinceLastFPS = 0; 3426 an.actualFPS = fps; 3427 } 3428 an.frameCount++; 3429 3430 } catch(ex) { 3431 3432 if (!an.callbackDisabled) { 3433 console.warn("Unable to invoke callback: "+callback); 3434 an.callbackDisabled = true; 3435 } 3436 window.clearInterval(an.loopId); 3437 console.trace(this); 3438 throw ex; 3439 } 3440 }, mps); 3441 3442 an.isLooping = true; 3443 an.loopStarted = true; 3444 } 3445 3446 } 3447 3448 /** 3449 * Convenience method to get the height of the current drawing surface 3450 * @returns {number} width 3451 */ 3452 RiText.width = function() { return RiText.renderer._width(); } 3453 3454 3455 /** 3456 * Convenience method to get the height of the current drawing surface 3457 * @returns {number} height 3458 */ 3459 RiText.height = function() { return RiText.renderer._height(); } 3460 3461 /** 3462 * Convenience method to draw a crisp line on the drawing surface 3463 * @param {number} x1 3464 * @param {number} y1 3465 * @param {number} x2 3466 * @param {number} y2 3467 * @param {number} lineWidth (optional: default=1) 3468 */ 3469 RiText.line = function(x1, y1, x2, y2, lineWidth) { 3470 3471 var g = RiText.renderer; 3472 g._pushState(); 3473 g._line(x1, y1, x2, y2, lineWidth || 1); 3474 g._popState(); 3475 } 3476 3477 /** 3478 * Convenience method to set the size of the drawing surface in the current 3479 * renderer context 3480 * @param {number} w width 3481 * @param {number} h height 3482 */ 3483 RiText.size = function(w,h/*renderer*/) { 3484 3485 RiText.renderer._size(w,h/*renderer*/); 3486 } 3487 3488 /** 3489 * Returns the current graphics context, either a canvas 2d'-context or ProcessingJS instance 3490 * @returns {object} 3491 */ 3492 RiText.graphics = function() { 3493 3494 return RiText.renderer._getGraphics(); 3495 } 3496 3497 /** 3498 * Returns a random color in which the 3 values for rgb (or rgba if 'includeAlpha' is true), 3499 * are between min and max 3500 * 3501 * @param {number} min value 3502 * @param {number} max value 3503 * @param {boolean} includeAlpha true if includes alpha 3504 * @returns {array} numbers - [r,g,b] or [r,g,b,a] 3505 */ 3506 RiText.randomColor = function(min,max,includeAlpha) { 3507 3508 min = min || 0, max = max || 256; 3509 var col = [RiText.random(min,max),RiText.random(min,max),RiText.random(min,max)]; 3510 if (includeAlpha) col.push(RiText.random(min,max)); 3511 return col; 3512 } 3513 3514 /** 3515 * Returns a random number between 'min' (default 0) and 'max 3516 * @returns {number} 3517 */ 3518 RiText.random = function() { 3519 3520 return RiTa.random.apply(this,arguments); 3521 } 3522 3523 /** 3524 * Convenience method to get the distance between 2 points 3525 * @param {number} x1 3526 * @param {number} y1 3527 * @param {number} x2 3528 * @param {number} y2 3529 * 3530 * @returns {number} 3531 */ 3532 RiText.distance = function() { 3533 3534 return RiTa.distance.apply(this,arguments); 3535 } 3536 3537 /** 3538 * Convenience method to fill drawing surface background with specified color 3539 * @param {number} r 3540 * @param {number} g 3541 * @param {number} b 3542 * @param {number} a 3543 */ 3544 RiText.background = function(r,g,b,a) { 3545 3546 var br, bg, bb, ba=255, r = (typeof r == N) ? r : 255; 3547 3548 if (arguments.length >= 3) { 3549 br = r; 3550 bg = g; 3551 bb = b; 3552 } 3553 if (arguments.length == 4) { 3554 ba = a; 3555 } 3556 if (arguments.length <= 2) { 3557 br = r; 3558 bg = r; 3559 bb = r; 3560 } 3561 if (arguments.length == 2) { 3562 ba = g; 3563 } 3564 3565 RiText.renderer._background(br,bg,bb,ba); 3566 } 3567 3568 3569 /** 3570 * Returns the mouse position from a mouse event 3571 * in a cross-browser -ompatible fashion 3572 * @param {MouseEvent} e mouseEvent 3573 * @returns {object} mouse position with x,y properties 3574 */ 3575 RiText.mouse = function(e) { 3576 3577 var posX = -1,posY = -1; 3578 3579 if (!e) var e = window.event; 3580 if (!e && !RiText.mouse.printedWarning) { 3581 console.warn("Unable to determine mouse position without an event!"); 3582 RiText.mouse.printedWarning = true; 3583 } 3584 3585 if (e.pageX) { 3586 posX = e.pageX; 3587 } 3588 else if (e.clientX) { 3589 posX = e.clientX + document.body.scrollLeft 3590 + document.documentElement.scrollLeft; 3591 } 3592 3593 if (e.pageY) { 3594 posY = e.pageY; 3595 } 3596 else if (e.clientY) { 3597 posY = e.clientY + document.body.scrollTop 3598 + document.documentElement.scrollTop; 3599 } 3600 3601 3602 return {x:posX,y:posY}; 3603 } 3604 3605 // /** 3606 // * Returns the mouseY position from a mouse event 3607 // * in a cross-browser compatible fashion 3608 // * @param mouseEvent 3609 // */ 3610 // RiText.mouseY = function(e) { 3611 // 3612 // return posY; 3613 // } 3614 // 3615 /** 3616 * Returns all RiTexts that contain the point x,y or null if none do. 3617 * <p> 3618 * Note: this will return an array even if only one item is picked, therefore, 3619 * you should generally use it as follows: 3620 * 3621 * @example 3622 * var rts = RiText.getPicked(mx, my); 3623 * if (rts.length) { 3624 * rts[0].doSomething(); 3625 * } 3626 * 3627 * 3628 * @param {number} x 3629 * @param {number} y 3630 * 3631 * @returns {array} RiText[] 1 or more RiTexts containing 3632 * the point, or null if none do. 3633 */ 3634 RiText.picked = function(x, y) 3635 { 3636 var hits = []; 3637 for (var i = 0; i < RiText.instances.length; i++) 3638 { 3639 var rt = RiText.instances[i]; 3640 rt.contains(x, y) && hits.push(rt); 3641 } 3642 return hits; 3643 } 3644 3645 RiText.dispose = function(toDelete) { 3646 3647 Type.is(toDelete,A) && _disposeArray(toDelete); 3648 Type.is(toDelete,O) && _disposeOne(toDelete); 3649 } 3650 3651 RiText.disposeAll = function() { 3652 3653 for ( var i = 0; i < RiText.instances.length; i++) { 3654 3655 if (RiText.instances[i]) { 3656 3657 delete(RiText.instances[i]._rs); 3658 delete(RiText.instances[i]); 3659 } 3660 } 3661 RiText.instances = []; 3662 } 3663 3664 // TODO: if txt is an array, maintain line breaks... ? 3665 // TODO: other alignments? 3666 RiText.createLines = function(txt, x, y, maxW, maxH, theFont) { 3667 3668 // remove line breaks 3669 txt = replaceAll(txt, "[\r\n]", SP); 3670 3671 // adds spaces around html tokens 3672 txt = replaceAll(txt," ?(<[^>]+>) ?", " $1 "); 3673 3674 // split into array of words 3675 var tmp = txt.split(SP), words = []; 3676 for ( var i = tmp.length - 1; i >= 0; i--) 3677 words.push(tmp[i]); 3678 3679 if (!words.length) return []; 3680 3681 var g = RiText.renderer; 3682 var fn = RiText.createLines; 3683 3684 // helpers functions //////////////////////////////////////// ? 3685 3686 fn.checkLineHeight = fn.checkLineHeight || function(currentH, lineH, maxH) { 3687 3688 return currentH + lineH <= maxH; 3689 }; 3690 3691 fn.addLine = fn.addLine || function(arr, s) { 3692 if (s && s.length) { 3693 // strip trailing spaces (regex?) 3694 while (s.length > 0 && endsWith(s, " ")) 3695 s = s.substring(0, s.length - 1); 3696 arr.push(s); 3697 } 3698 }; 3699 3700 // the guts //////////////////////////////////////////////// 3701 3702 theFont = theFont || _getDefaultFont(); 3703 3704 var tmp = new RiText('_',0,0,theFont), textH = tmp.textHeight(); 3705 RiText.dispose(tmp); 3706 3707 var currentH = 0, currentW = 0, newParagraph = false, forceBreak = false, strLines = [], 3708 sb = RiText.defaults.indentFirstParagraph ? RiText.defaults.paragraphIndent : E; 3709 3710 while (words.length > 0) { 3711 3712 var next = words.pop(); 3713 3714 if (next.length == 0) continue; 3715 3716 if (startsWith(next, '<') && endsWith(next, ">")) { 3717 3718 if (next === RiText.NON_BREAKING_SPACE || next === "</sp>") { 3719 3720 sb += SP; 3721 } 3722 else if (next === RiText.PARAGRAPH || next === "</p>") { 3723 3724 if (sb.length > 0) {// case: paragraph break 3725 3726 newParagraph = true; 3727 } 3728 else if (RiText.indentFirstParagraph) { 3729 3730 sb += RiText.defaults.paragraphIndent; 3731 } 3732 } 3733 else if (endsWith(next, RiText.LINE_BREAK) || next === "</br>") { 3734 3735 forceBreak = true; 3736 } 3737 continue; 3738 } 3739 3740 currentW = g._textWidth(theFont, sb + next); 3741 3742 // check line-length & add a word 3743 if (!newParagraph && !forceBreak && currentW < maxW) { 3744 3745 sb += next + " "; 3746 } 3747 else // new paragraph or line-break 3748 { 3749 // check vertical space, add line & next word 3750 if (fn.checkLineHeight(currentH, textH, maxH)) { 3751 3752 fn.addLine(strLines, sb); 3753 sb = E; 3754 3755 if (newParagraph) { // do indent 3756 3757 sb += RiText.defaults.paragraphIndent; 3758 if (RiText.defaults.paragraphLeading > 0) { 3759 sb += '|'; // filthy 3760 } 3761 } 3762 newParagraph = false; 3763 forceBreak = false; 3764 sb += next + SP;//addWord(sb, next); 3765 3766 currentH += textH; // DCH: changed(port-to-js), 3.3.12 3767 // currentH += lineHeight; 3768 } 3769 else { 3770 3771 if (next != null) words.push(next); 3772 break; 3773 } 3774 } 3775 } 3776 3777 // check if leftover words can make a new line 3778 if (fn.checkLineHeight(currentH, textH, maxH)) { 3779 3780 fn.addLine(strLines, sb); 3781 sb = E; 3782 } 3783 else { 3784 var tmp = sb.split(SP); 3785 for ( var i = tmp.length - 1; i >= 0; i--) { 3786 words.push(tmp[i]); 3787 } 3788 //fn.pushLine(words, sb.split(SP)); 3789 } 3790 3791 if (!strLines.length) err('Unexpected fail in createLines: no lines'); 3792 3793 // lay out the lines 3794 var rts = RiText._createLinesByCharCountFromArray(strLines, x, y+textH, theFont); 3795 3796 // set the paragraph spacing 3797 if (RiText.defaults.paragraphLeading > 0) { 3798 3799 var lead = 0; 3800 for (var i = 0; i < rts.length; i++) { 3801 3802 var str = rts[i].text(); 3803 var idx = str.indexOf('|'); 3804 if (idx > -1) { 3805 lead += RiText.defaults.paragraphLeading; 3806 rts[i].removeCharAt(idx); 3807 } 3808 rts[i].y += lead; 3809 } 3810 } 3811 3812 // check all the lines are still in the rect 3813 var toKill = []; 3814 var check = rts[rts.length - 1]; 3815 for (var z = 1; check.y > y + maxH; z++) { 3816 3817 toKill.push(check); 3818 var idx = rts.length - 1 - z; 3819 if (idx < 0) break; 3820 check = rts[idx]; 3821 } 3822 3823 // remove the dead ones 3824 for (var z = 0; z < toKill.length; z++) { 3825 3826 removeFromArray(rts, toKill[z]); 3827 } 3828 3829 _disposeArray(toKill); 3830 3831 3832 return rts; 3833 } 3834 3835 // TODO: add example 3836 /** 3837 * Sets/gets the default font size for all RiTexts 3838 * @param {object} motionType 3839 * @returns {object} the current default motionType 3840 */ 3841 RiText.defaultMotionType = function(motionType) { 3842 3843 if (arguments.length==1) 3844 RiText.defaults.motionType = motionType; 3845 return RiText.defaults.motionType; 3846 } 3847 3848 // TODO: add example 3849 /** 3850 * Sets/gets the default alignment for all RiTexts 3851 * @param {number} align (optional, for sets only) 3852 * @returns {number} the current default alignment 3853 */ 3854 RiText.defaultAlignment = function(align) { 3855 3856 if (arguments.length==1) 3857 RiText.defaults.alignment = align; 3858 return RiText.defaults.alignment; 3859 } 3860 3861 /** 3862 * Sets/gets the default font size for all RiTexts 3863 * @param {number} size (optional, for sets only) 3864 * @returns {number} the current default font size 3865 */ 3866 RiText.defaultFontSize = function(size) { 3867 3868 if (arguments.length==1) 3869 RiText.defaults.fontSize = size; 3870 return RiText.defaults.fontSize; 3871 } 3872 3873 /** 3874 * Sets/gets the default bounding box visibility 3875 * @param {boolean} size (optional, for sets only) 3876 * @returns {boolean} the current default bounding box visibility 3877 */ 3878 RiText.showBoundingBoxes = function(value) { 3879 3880 if (arguments.length==1) 3881 RiText.defaults.boundingBoxVisible = value; 3882 return RiText.defaults.boundingBoxVisible; 3883 } 3884 3885 /** 3886 * Sets/gets the default font for all RiTexts 3887 * @param {object} font (optional, for sets only) 3888 * @returns {object} the current default font 3889 */ 3890 RiText.defaultFont = function(font) { 3891 3892 var a = arguments; 3893 if (a.length == 1 && typeof a[0] == O) { 3894 RiText.defaults.font = a[0]; 3895 } 3896 else if (a.length > 1) { 3897 RiText.defaults.font = RiText.renderer._createFont.apply(RiText.renderer,a); 3898 } 3899 return RiText.defaults.font; 3900 } 3901 3902 RiText.createFont = function(fontName, fontSize, leading) { 3903 3904 if (!fontName) err('RiText.createFont requires fontName'); 3905 3906 fontSize = fontSize || RiText.defaults.fontSize; 3907 3908 return RiText.renderer._createFont(fontName, fontSize, leading); 3909 } 3910 3911 RiText.createWords = function(txt, x, y, w, h, fontObj) { 3912 3913 return _createRiTexts(txt, x, y, w, h, fontObj, RiText.prototype.splitWords); 3914 } 3915 3916 RiText.createLetters = function(txt, x, y, w, h, fontObj) { 3917 3918 return _createRiTexts(txt, x, y, w, h, fontObj, RiText.prototype.splitLetters); 3919 } 3920 3921 // private statics /////////////////////////////////////////////////////////////// 3922 3923 // make a sub-case of _createLinesByCharCount(() ? 3924 RiText._createLinesByCharCountFromArray = function(txtArr, startX, startY, fontObj) { 3925 3926 //log('createLinesByCharCountFromArray('+txtArr.length+','+startX+','+startY+','+maxCharsPerLine+','+fontObj+')'); 3927 3928 fontObj = fontObj || _getDefaultFont(); 3929 3930 var rts = []; 3931 for ( var i = 0; i < txtArr.length; i++) { 3932 //log(i+")"+txtArr[i]); 3933 rts.push(RiText(txtArr[i], startX, startY, fontObj)); 3934 } 3935 3936 if (rts.length < 1) return []; 3937 3938 return _handleLeading(fontObj, rts, startY); 3939 } 3940 3941 // TODO: if txt is an array, maintain line breaks... ? Is this even being used?? 3942 // TODO: should this be private -- need a way to respect line-breaks in createWords, createLetters, etc. - add test 3943 RiText._createLinesByCharCount = function(txt, startX, startY, maxCharsPerLine, fontObj) { 3944 3945 //log("RiText._createLinesByCharCount(("+txt+", "+startX+","+startY+", "+maxCharsPerLine+", "+fontObj+")"); 3946 3947 if (!maxCharsPerLine || maxCharsPerLine<0) maxCharsPerLine = Number.MAX_VALUE; 3948 3949 if (txt == null || txt.length == 0) return new Array(); 3950 3951 if (txt.length < maxCharsPerLine) return [ new RiText(txt, startX, startY) ]; 3952 3953 // remove any line breaks from the original 3954 txt = replaceAll(txt,"\n", " "); 3955 3956 var texts = []; 3957 while (txt.length > maxCharsPerLine) { 3958 var toAdd = txt.substring(0, maxCharsPerLine); 3959 txt = txt.substring(maxCharsPerLine, txt.length); 3960 3961 var idx = toAdd.lastIndexOf(" "); 3962 var end = ""; 3963 if (idx >= 0) { 3964 end = toAdd.substring(idx, toAdd.length); 3965 if (maxCharsPerLine < Number.MAX_VALUE) end = end.trim(); 3966 toAdd = toAdd.substring(0, idx); 3967 } 3968 texts.push(new RiText(toAdd.trim(), startX, startY)); 3969 txt = end + txt; 3970 } 3971 3972 if (txt.length > 0) { 3973 if (maxCharsPerLine < Number.MAX_VALUE) txt = txt.trim(); 3974 texts.push(new RiText(txt, startX, startY)); 3975 } 3976 3977 return _handleLeading(fontObj, texts, startY); 3978 } 3979 3980 _createRiTexts = function(txt, x, y, w, h, fontObj, splitFun) // private 3981 { 3982 if (!txt || !txt.length) return []; 3983 fontObj = fontObj || _getDefaultFont(); 3984 3985 var rlines = RiText.createLines(txt, x, y, w, h, fontObj); 3986 if (!rlines) return []; 3987 3988 var result = []; 3989 for ( var i = 0; i < rlines.length; i++) { 3990 3991 var rts = splitFun.call(rlines[i]); 3992 for ( var j = 0; j < rts.length; j++) 3993 result.push(rts[j].font(fontObj)); // add the words 3994 3995 RiText.dispose(rlines[i]); 3996 } 3997 3998 return result; 3999 } 4000 4001 4002 // Returns the pixel x-offset for the word at 'wordIdx' (make private in RiText) 4003 _wordOffsetFor = function(rt, words, wordIdx) { 4004 4005 //log("wordOffset("+words+","+wordIdx+")"); 4006 4007 if (wordIdx < 0 || wordIdx >= words.length) 4008 throw new Error("Bad wordIdx=" + wordIdx + " for " + words); 4009 4010 rt.g._pushState(); 4011 4012 var xPos = rt.x; 4013 4014 if (wordIdx > 0) { 4015 4016 var pre = words.slice(0, wordIdx); 4017 var preStr = ''; 4018 for ( var i = 0; i < pre.length; i++) { 4019 preStr += pre[i] + ' '; 4020 } 4021 4022 var tw = rt.g._textWidth(rt._font, preStr); 4023 4024 //log("x="+xPos+" pre='"+preStr+"' tw=" + tw); 4025 4026 switch (rt._alignment) { 4027 case RiText.LEFT: 4028 xPos = rt.x + tw; 4029 break; 4030 case RiText.RIGHT: 4031 xPos = rt.x - tw; 4032 break; 4033 case RiText.CENTER: 4034 console.warn("TODO: test center-align here"); 4035 xPos = rt.x; // ? 4036 break; 4037 } 4038 } 4039 rt.g._popState(); 4040 4041 return xPos; 4042 } 4043 4044 _handleLeading = function(fontObj, rts, startY) { 4045 4046 if (!rts || !rts.length) return; 4047 4048 fontObj = fontObj || _getDefaultFont(); 4049 4050 var nextHeight = startY; 4051 rts[0].font(fontObj); 4052 for ( var i = 0; i < rts.length; i++) { 4053 4054 if (fontObj) rts[i].font(fontObj); // set the font 4055 rts[i].y = nextHeight; // adjust y-pos 4056 nextHeight += fontObj.leading; 4057 } 4058 4059 return rts; 4060 } 4061 4062 _disposeOne = function(toDelete) { 4063 4064 removeFromArray(RiText.instances, toDelete); 4065 4066 if (toDelete) { 4067 delete(toDelete._rs); 4068 delete(toDelete); 4069 } 4070 4071 } 4072 4073 _disposeArray = function(toDelete) { 4074 4075 for ( var i = 0; i < toDelete.length; i++) { 4076 4077 _disposeOne(toDelete[i]); 4078 } 4079 } 4080 4081 // TODO: test this font default across all platforms and browsers 4082 4083 _getDefaultFont = function() { // make private?? 4084 4085 //log("_getDefaultFont: "+RiText.defaults.fontFamily+","+RiText.defaults.font.size); 4086 4087 RiText.defaults.font = RiText.defaults.font || 4088 RiText.renderer._createFont(RiText.defaults.fontFamily, 4089 RiText.defaults.fontSize, RiText.defaults.fontLeading); 4090 4091 return RiText.defaults.font; 4092 } 4093 4094 /** 4095 * A convenience method to call a member function on each RiText in the array, 4096 * or all existing RiText objects (with no argument) 4097 * @param {array} theFunction defaults to all riText if an array is not supplied (optional, default=all) 4098 */ 4099 RiText.foreach = function(theFunction) { 4100 4101 if (arguments.length == 1 && Type.is(array,A)) { 4102 for ( var i = 0; i < array.length; i++) 4103 array[i] && array[i].theFunction(); 4104 } 4105 else { 4106 for ( var i = 0; i < RiText.instances.length; i++) 4107 RiText.instances[i] && RiText.instances[i].theFunction(); 4108 } 4109 4110 } 4111 4112 /** 4113 * A convenience method to draw all existing RiText objects (with no argument) 4114 * or an array of RiText objects (if supplied as an argument) 4115 * @param {array} array draws only the array if supplied (optional) 4116 */ 4117 RiText.drawAll = function(array) { 4118 4119 if (arguments.length == 1 && Type.is(array,A)) { 4120 for ( var i = 0; i < array.length; i++) 4121 array[i] && array[i].draw(); 4122 } 4123 else { 4124 for ( var i = 0; i < RiText.instances.length; i++) 4125 RiText.instances[i] && RiText.instances[i].draw(); 4126 } 4127 4128 } 4129 4130 RiText.defaultColor = function(r, g, b, a) { 4131 4132 if (arguments.length) { 4133 RiText.defaults.color = parseColor.apply(this,arguments); 4134 } 4135 return RiText.defaults.color; 4136 } 4137 4138 // PUBLIC statics (TODO: clean up) /////////////////////////////////////////// 4139 4140 RiText.NON_BREAKING_SPACE = "<sp>"; 4141 RiText.LINE_BREAK = "<br>"; 4142 RiText.PARAGRAPH = "<p>"; 4143 4144 RiText.instances = []; 4145 4146 RiText.LEFT = 37; RiText.UP = 38; RiText.RIGHT = 39; RiText.DOWN = 40, RiText.CENTER = 3; 4147 4148 // ==== RiTaEvent ============ 4149 4150 RiText.UNKNOWN = -1; RiText.TEXT_ENTERED = 1; RiText.BEHAVIOR_COMPLETED = 2; RiText.TIMER_TICK = 3; 4151 4152 // ==== TextBehavior ============ 4153 4154 RiText.MOVE_TO = 1; RiText.FADE_COLOR = 2; RiText.FADE_IN = 3; RiText.FADE_OUT = 4; RiText.FADE_TO_TEXT = 5; 4155 RiText.TIMER = 6; RiText.SCALE_TO = 7; RiText.LERP = 8; 4156 4157 // ==== Animation types ============ 4158 4159 RiText.LINEAR = Easing.Linear.None; 4160 4161 RiText.EASE_IN = Easing.Exponential.In; 4162 RiText.EASE_OUT = Easing.Exponential.Out; 4163 RiText.EASE_IN_OUT = Easing.Exponential.InOut; 4164 4165 RiText.EASE_IN_EXPO = Easing.Exponential.In; 4166 RiText.EASE_OUT_EXPO = Easing.Exponential.Out; 4167 RiText.EASE_IN_OUT_EXPO = Easing.Exponential.InOut; 4168 4169 RiText.EASE_IN_SINE = Easing.Sinusoidal.In; 4170 RiText.EASE_OUT_SINE = Easing.Sinusoidal.Out; 4171 RiText.EASE_IN_OUT_SINE = Easing.Sinusoidal.InOut; 4172 4173 RiText.EASE_IN_CUBIC = Easing.Cubic.In; 4174 RiText.EASE_OUT_CUBIC = Easing.Cubic.Out; 4175 RiText.EASE_IN_OUT_CUBIC = Easing.Cubic.InOut; 4176 4177 RiText.EASE_IN_QUARTIC = Easing.Quartic.In; 4178 RiText.EASE_OUT_QUARTIC = Easing.Quartic.Out; 4179 RiText.EASE_IN_OUT_QUARTIC = Easing.Quartic.InOut; 4180 4181 RiText.EASE_IN_QUINTIC = Easing.Quintic.In; 4182 RiText.EASE_OUT_QUINTIC = Easing.Circular.Out; 4183 RiText.EASE_IN_OUT_QUINTIC = Easing.Circular.InOut; 4184 4185 RiText.BACK_IN = Easing.Back.In; 4186 RiText.BACK_OUT = Easing.Back.Out; 4187 RiText.BACK_IN_OUT = Easing.Back.InOut; 4188 4189 RiText.BOUNCE_IN = Easing.Bounce.In; 4190 RiText.BOUNCE_OUT = Easing.Bounce.Out; 4191 RiText.BOUNCE_IN_OUT = Easing.Bounce.InOut; 4192 4193 RiText.CIRCULAR_IN = Easing.Circular.In; 4194 RiText.CIRCULAR_OUT = Easing.Circular.Out; 4195 RiText.CIRCULAR_IN_OUT = Easing.Circular.InOut; 4196 4197 RiText.ELASTIC_IN = Easing.Elastic.In; 4198 RiText.ELASTIC_OUT = Easing.Elastic.Out; 4199 RiText.ELASTIC_IN_OUT = Easing.Elastic.InOut; 4200 4201 /** 4202 * A set of static defaults to be shared by RiText objects 4203 * Can be modified directly or through API methods. 4204 * 4205 * @example 4206 * RiText.defaultAlignment(RiText.RIGHT); 4207 * RiText.defaultFontSize(20); 4208 * 4209 * @example 4210 * RiText.defaults.alignment = RiText.RIGHT; 4211 * RiText.defaults.fontSize = 20; 4212 4213 * @property {object} defaults 4214 */ 4215 RiText.defaults = { 4216 4217 color : { r : 0, g : 0, b : 0, a : 255 }, scaleX:1, scaleY:1, scaleZ:1, 4218 alignment : RiText.LEFT, motionType : RiText.LINEAR, rotateZ:0, font:null, 4219 paragraphLeading : 0, paragraphIndent: ' ', indentFirstParagraph: false, 4220 fontFamily: 'Times New Roman', fontSize: 14, fontLeading : 16, leadingFactor : 1.1, 4221 boundingBoxStroke : null, boundingBoxFill: null, boundingBoxVisible : false 4222 } 4223 4224 RiText.prototype = { 4225 4226 /** 4227 * @private 4228 * @param text 4229 * @param x 4230 * @param y 4231 * @param font 4232 * @returns {RiText} 4233 */ 4234 initialize : function(text, x, y, font) { 4235 4236 if (!RiText.renderer) 4237 err("No graphics context, RiText unavailable"); 4238 4239 if (arguments.length) { 4240 4241 Type.is(text, O) && typeof text.text == F && (text = text.text()); 4242 } 4243 else { 4244 4245 text = E; 4246 } 4247 4248 Type.ok(text, S); 4249 4250 this._color = { 4251 r : RiText.defaults.color.r, 4252 g : RiText.defaults.color.g, 4253 b : RiText.defaults.color.b, 4254 a : RiText.defaults.color.a 4255 }; 4256 4257 var bbs = RiText.defaults.boundingBoxStroke; 4258 this._boundingBoxStroke = { 4259 r : (bbs && bbs.r) || this._color.r, 4260 g : (bbs && bbs.g) || this._color.g, 4261 b : (bbs && bbs.b) || this._color.b, 4262 a : (bbs && bbs.a) || this._color.a 4263 }; 4264 4265 var bbf = RiText.defaults.boundingBoxFill; 4266 this._boundingBoxFill = { 4267 r : (bbf && bbf.r) || this._color.r, 4268 g : (bbf && bbf.g) || this._color.g, 4269 b : (bbf && bbf.b) || this._color.b, 4270 a : (bbf && bbf.a) || 0 4271 }; 4272 4273 this._boundingBoxVisible = RiText.defaults.boundingBoxVisible; 4274 this._motionType = RiText.defaults.motionType; 4275 4276 this._alignment = RiText.defaults.alignment; 4277 4278 this._rotateZ = RiText.defaults.rotateZ; 4279 this._scaleX = RiText.defaults.scaleX; 4280 this._scaleY = RiText.defaults.scaleY; 4281 this._scaleZ = 1; 4282 4283 this._behaviors = []; 4284 this.font(font); 4285 this.text(text); 4286 4287 this.g = RiText.renderer; 4288 4289 //log('RiText) '+this._rs._text +" / "+ this._font.name); 4290 4291 this.x = arguments.length>1 ? x : this.g._width() / 2 - this.textWidth() / 2.0; 4292 this.y = arguments.length>1 ? y : this.g._height() / 2; 4293 4294 RiText.instances.push(this); 4295 4296 return this; 4297 }, 4298 4299 /** 4300 * TODO: NEED DOCS 4301 */ 4302 draw : function() { 4303 this._update(); 4304 this._render(); 4305 if (this.fadeToTextCopy) 4306 this.fadeToTextCopy.draw(); 4307 }, 4308 4309 _update : function() { 4310 4311 var time = Date.now(); 4312 this._updateBehaviors(time); 4313 4314 }, 4315 4316 // updateMousePosition : function(curElement, event) { 4317 // var offset = calculateOffset(window, event); 4318 // p.mouseX = event.pageX - offset.X; 4319 // p.mouseY = event.pageY - offset.Y 4320 // }, 4321 4322 _render : function() { 4323 4324 var g = this.g; 4325 4326 if (!g) err('no-renderer'); 4327 4328 g._pushState(); 4329 4330 if (this._rs && this._rs.length) { 4331 4332 g._pushState(); 4333 4334 // order: scale, center-point-trans, rotate,-center-point-trans,translate? 4335 4336 g._rotate(this._rotateZ); 4337 g._translate(this.x, this.y); 4338 g._scale(this._scaleX, this._scaleY, this._scaleZ); 4339 4340 // Set color 4341 g._fill(this._color.r, this._color.g, this._color.b, this._color.a); 4342 4343 // Set font params 4344 g._textFont(this._font); 4345 g._textAlign(this._alignment); 4346 4347 // Draw text 4348 g._text(this._rs._text, 0, 0); 4349 4350 // And the bounding box 4351 if (this._boundingBoxVisible) { 4352 4353 g._fill(this._boundingBoxFill.r, this._boundingBoxFill.g, 4354 this._boundingBoxFill.b, this._boundingBoxFill.a); 4355 4356 g._stroke(this._boundingBoxStroke.r, this._boundingBoxStroke.g, 4357 this._boundingBoxStroke.b, this._boundingBoxStroke.a); 4358 4359 var bb = g._getBoundingBox(this); 4360 4361 // shift bounds based on alignment 4362 switch(this._alignment) { 4363 4364 case RiText.RIGHT: 4365 g._translate(-bb.width,0); 4366 break; 4367 case RiText.CENTER: 4368 g._translate(-bb.width/2,0); 4369 break; 4370 } 4371 g._rect(bb.x, bb.y, bb.width, -bb.height); 4372 } 4373 4374 g._popState(); 4375 } 4376 4377 return this; 4378 }, 4379 4380 ///////////////////////////////// Text Behaviors //////////////////////////////////// 4381 4382 /** 4383 * Sets/gets the animation <code>motionType</code> for this RiText 4384 * according to one of the following functions: <br> 4385 * <ul> 4386 * <li>RiText.LINEAR 4387 * <li> 4388 * <li>RiText.EASE_IN 4389 * <li>RiText.EASE_OUT 4390 * <li>RiText.EASE_IN_OUT 4391 * <li> 4392 * <li>RiText.EASE_IN_EXPO 4393 * <li>RiText.EASE_OUT_EXPO 4394 * <li>RiText.EASE_IN_OUT_EXPO 4395 * <li> 4396 * <li>RiText.EASE_IN_SINE 4397 * <li>RiText.EASE_OUT_SINE 4398 * <li>RiText.EASE_IN_OUT_SINE 4399 * <li> 4400 * <li>RiText.EASE_IN_CUBIC 4401 * <li>RiText.EASE_OUT_CUBIC 4402 * <li>RiText.EASE_IN_OUT_CUBIC 4403 * <li> 4404 * <li>RiText.EASE_IN_QUARTIC 4405 * <li>RiText.EASE_OUT_QUARTIC 4406 * <li>RiText.EASE_IN_OUT_QUARTIC 4407 * <li> 4408 * <li>RiText.EASE_IN_QUINTIC 4409 * <li>RiText.EASE_OUT_QUINTIC 4410 * <li>RiText.EASE_IN_OUT_QUINTIC 4411 * <li> 4412 * <li>RiText.BACK_IN 4413 * <li>RiText.BACK_OUT 4414 * <li>RiText.BACK_IN_OUT 4415 * <li> 4416 * <li>RiText.BOUNCE_IN 4417 * <li>RiText.BOUNCE_OUT 4418 * <li>RiText.BOUNCE_IN_OUT 4419 * <li> 4420 * <li>RiText.CIRCULAR_IN 4421 * <li>RiText.CIRCULAR_OUT 4422 * <li>RiText.CIRCULAR_IN_OUT 4423 * <li> 4424 * <li>RiText.ELASTIC_IN 4425 * <li>RiText.ELASTIC_OUT 4426 * <li>RiText.ELASTIC_IN_OUT 4427 * </ul> 4428 * 4429 * @param {number} motionType 4430 * @returns {number} motionType 4431 */ 4432 motionType : function (motionType) { 4433 if (arguments.length) { 4434 this._motionType = motionType; 4435 return this; 4436 } 4437 return this._motionType; 4438 }, 4439 4440 /** 4441 * Fades in current text over <code>seconds</code> starting at 4442 * <code>startTime</code>. Interpolates from the current color {r,g,b,a} 4443 * to {r,g,b,255}. 4444 * 4445 * @param {number} seconds start Time 4446 * time in future to start 4447 * @param {number} delay seconds 4448 * time for fade 4449 * @param {function} callback 4450 * 4451 * @returns {number} the unique id for this behavior 4452 */ 4453 fadeIn : function(seconds, delay, callback) { 4454 4455 return this.colorTo([this._color.r, this._color.g, this._color.b, 255], 4456 seconds, delay, null, 'fadeIn', false); 4457 }, 4458 4459 /** 4460 * Fades out current text over <code>seconds</code> starting at 4461 * <code>startTime</code>. Interpolates from the current color {r,g,b,a} 4462 * to {r,g,b,0}. 4463 * 4464 * @param {number} seconds 4465 * time for fade 4466 * @param {number} delay 4467 * (optional, default=0), # of seconds in the future that the fade will start 4468 * 4469 * @param {function} callback the callback to be invoked when the behavior has completed (optional: default=onRiTaEvent(e) 4470 * 4471 * @param {boolean} destroyOnComplete 4472 * (optional, default=false), destroys the object when the behavior completes 4473 * @returns {number} the unique id for this behavior 4474 */ 4475 fadeOut : function(seconds, delay, callback, destroyOnComplete) { 4476 4477 destroyOnComplete = destroyOnComplete || false; 4478 return this.colorTo([this._color.r, this._color.g, this._color.b, 0], 4479 seconds, delay, null, 'fadeOut', destroyOnComplete); 4480 }, 4481 4482 // DH: omitting last 2 args from docs as they are private 4483 /** 4484 * Transitions to 'color' (rgba) over 'seconds' starting at 'delay' seconds in the future 4485 * 4486 * @param {array} colors (length 1-4) r,g,b,a (0-255) 4487 * @param {number} seconds delay 4488 * (optional, default=0), # of seconds in the future that the fade will start 4489 * @param {number} delay seconds 4490 * time for fade 4491 * @param {function} callback the callback to be invoked when the behavior has completed 4492 * (optional: default=onRiTaEvent(e)) 4493 * @returns {number} the unique id for this behavior 4494 */ 4495 colorTo : function(colors, seconds, delay, callback, type, destroyOnComplete) { 4496 4497 if (!Type.is(colors,A)) err('arg#1 to colorTo() must be an array'); 4498 4499 //log(colors[0], g: colors[1], b: colors[2], a: colors[3], seconds); 4500 4501 delay = delay || 0; 4502 seconds = seconds || 1.0; 4503 type = type || 'colorTo'; 4504 colors = parseColor.apply(this, colors); 4505 4506 var rt = this, id = setTimeout(function() { 4507 4508 new TextBehavior(rt, rt._color) 4509 .to( { r: colors.r, g: colors.g, b: colors.b, a: colors.a }, seconds*1000) 4510 .easing(rt._motionType) 4511 .onUpdate( function () { 4512 rt._color.r = this.r; 4513 rt._color.g = this.g; 4514 rt._color.b = this.b; 4515 rt._color.a = this.a 4516 }) 4517 //.delay(delay) 4518 .onComplete( 4519 function () { 4520 RiTaEvent(rt, type+'Complete')._fire(callback); 4521 if (destroyOnComplete) RiText.dispose(rt); 4522 }) 4523 .start(); 4524 4525 }, delay*1000); 4526 4527 return id; 4528 }, 4529 4530 /** 4531 * Scales to 'theScale' over 'seconds' starting at 'delay' seconds in the future 4532 * 4533 * @param {number} theScale delay 4534 * (optional, default=0), # of seconds in the future that the fade will start 4535 * @param {number} seconds 4536 * time for fade 4537 * @param {number} delay seconds 4538 * time for fade 4539 * @param {function} callback the callback to be invoked when the behavior has completed (optional: default=onRiTaEvent(e) 4540 * 4541 * @returns {number} the unique id for this behavior 4542 */ 4543 scaleTo : function(theScale, seconds, delay, callback) { 4544 4545 var rt = this; 4546 delay = delay || 0; 4547 seconds = seconds || 1.0; 4548 4549 var id = setTimeout(function() { 4550 4551 var tb = new TextBehavior(rt) 4552 .to( { _scaleX: theScale, _scaleY: theScale }, seconds*1000) 4553 .easing(rt._motionType) 4554 .onUpdate( function () { 4555 rt._scaleX = this._scaleX; 4556 rt._scaleY = this._scaleY; 4557 }) 4558 //.delay(delay*1000) 4559 .onComplete( 4560 function () { 4561 RiTaEvent(rt, 'scaleToComplete')._fire(callback); 4562 }); 4563 4564 tb.start(); 4565 4566 }, delay*1000); 4567 4568 return id; 4569 }, 4570 4571 /** 4572 * Rotates to 'radians' over 'seconds' starting at 'delay' seconds in the future 4573 * 4574 * @param {number} angleInRadians 4575 * @param {number} delay 4576 * (optional, default=0), # of seconds in the future that the fade will start 4577 * @param {number} seconds 4578 * time for fade 4579 * @param {function} callback the callback to be invoked when the behavior has completed (optional: default=onRiTaEvent(e) 4580 * 4581 * @returns {number} the unique id for this behavior 4582 */ 4583 rotateTo : function(angleInRadians, seconds, delay, callback) { 4584 4585 var rt = this; 4586 delay = delay || 0; 4587 seconds = seconds || 1.0; 4588 4589 var id = setTimeout(function() { 4590 4591 var tb = new TextBehavior(rt) 4592 .to( { _rotateZ: angleInRadians }, seconds*1000) 4593 .easing(rt._motionType) 4594 .onUpdate( function () { 4595 rt._rotateZ = this._rotateZ; 4596 }) 4597 //.delay(delay*1000) 4598 .onComplete( 4599 function () { 4600 RiTaEvent(rt, 'rotateToComplete')._fire(callback); 4601 }); 4602 4603 tb.start(); 4604 4605 }, delay*1000); 4606 4607 return id; 4608 }, 4609 4610 /** 4611 * Fades out the current text and fades in the <code>newText</code> over 4612 * <code>seconds</code> starting at 'startTime' seconds in the future 4613 * 4614 * @param {string} newText 4615 * to be faded in 4616 * @param {number} seconds 4617 * time for fade 4618 * @param {number} endAlpha 4619 * (optional, default=255), the alpha to end on 4620 * @param {function} callback the callback to be invoked when the behavior has completed (optional: default=onRiTaEvent(e) 4621 * 4622 * @returns {number} - the unique id for this behavior 4623 */ 4624 textTo: function(newText, seconds, endAlpha, callback) { 4625 4626 // grab the alphas if needed 4627 var c = this._color, startAlpha = 0, endAlpha = endAlpha || 255; // this._color.a 4628 4629 if (this.fadeToTextCopy) 4630 { 4631 startAlpha = this.fadeToTextCopy.alpha(); 4632 RiText.dispose(this.fadeToTextCopy); // stop any currents 4633 } 4634 4635 // use the copy to fade out 4636 this.fadeToTextCopy = this.clone().fadeOut(seconds, 0, true); 4637 RiText.dispose(this.fadeToTextCopy.fadeToTextCopy); // avoid turtles 4638 4639 // and use 'this' to fade in 4640 this.text(newText).alpha(startAlpha); 4641 4642 return this.colorTo([c.r, c.g, c.b, endAlpha], seconds * .95, 0, 'textTo'); 4643 }, 4644 4645 /** 4646 * Move to new x,y position over 'seconds' 4647 * <p> 4648 * Note: uses the current <code>motionType</code> for this object, starting at 'delay' seconds in the future 4649 * 4650 * @param {number} newX 4651 * @param {number} newY 4652 * @param {number} seconds 4653 * @param {number} delay 4654 * @param {function} callback the callback to be invoked when the behavior has completed (optional: default=onRiTaEvent(e) 4655 * 4656 * @returns {number} the unique id for this behavior 4657 */ 4658 moveTo : function(newX,newY,seconds,delay,callback) { 4659 4660 var rt = this; 4661 4662 delay = delay || 0; 4663 seconds = seconds || 1.0; 4664 4665 var id = setTimeout(function() { 4666 4667 new TextBehavior(rt) 4668 .to( { x: newX, y: newY }, seconds*1000) 4669 .easing(rt._motionType) 4670 .onUpdate( function () { 4671 rt.x = this.x ; 4672 rt.y = this.y ; 4673 }) 4674 .delay(delay).onComplete( 4675 function () { 4676 RiTaEvent(rt, 'moveToCompleted')._fire(callback); 4677 }) 4678 .start(); 4679 4680 }, delay*1000); 4681 4682 return id; 4683 }, 4684 4685 //////////////////////////////////////////////////////////////////////////////////////// 4686 4687 analyze : function() { 4688 4689 var words = (this._rs._text.indexOf(SP) ? RiTa.tokenize(this._rs._text) : [this._rs._text]), 4690 lex = RiLexicon._getInstance(), slash = '/', stressyls, raw, delim = '-', 4691 phonemes = E, syllables = E, stresses = E, lts; 4692 4693 this.features = this.features || {}; 4694 4695 for (var i = 0, l = words.length; i < l; i++) { 4696 4697 raw = lex._getRawPhones(words[i]); 4698 4699 if (!raw) { 4700 4701 if (!RiTa.SILENT && console) 4702 console.log("[RiTa] Using LTS for '"+words[i]+"'"); 4703 4704 lts = lts || LetterToSound(); 4705 raw = this._rs.syllabify(lts.getPhones(words[i])); 4706 } 4707 4708 phonemes += raw.replace(/[0-2]/g, E).replace(/ /g, delim) + SP; 4709 syllables += raw.replace(/ /g, slash).replace(/1/g, E) + SP; 4710 4711 stressyls = raw.split(SP); 4712 for (var j = 0; j < stressyls.length; j++) { 4713 4714 if (!stressyls[j].length) continue; 4715 4716 stresses += (stressyls[j].indexOf(RiLexicon.STRESSED) > -1) 4717 ? RiLexicon.STRESSED : RiLexicon.UNSTRESSED; 4718 4719 if (j < stressyls.length-1) stresses += slash; 4720 } 4721 if (!endsWith(stresses, SP)) stresses += SP; 4722 } 4723 this.features.phonemes = phonemes.trim(); 4724 this.features.stresses = stresses.trim(); 4725 this.features.syllables = syllables.trim(); 4726 4727 //log(this.features); 4728 4729 return this; 4730 }, 4731 4732 4733 /** 4734 * Set/gets the text for this RiText 4735 * 4736 * @param {string} txt the new text (optional) 4737 * @returns {object | number} this RiText (for sets) or the current text (for gets) 4738 */ 4739 text : function(txt) { 4740 4741 if (arguments.length == 1) { 4742 4743 var theType = Type.get(txt); 4744 4745 if (theType == N) { 4746 txt = String.fromCharCode(txt); 4747 } 4748 else if (theType == O && typeof txt.text == F) { 4749 txt = txt.text(); 4750 } 4751 this._rs = (this._rs) ? this._rs.text(txt) : new RiString(txt); 4752 4753 if (!this._rs) err("no rs!! "+txt); // TODO:remove 4754 4755 return this; 4756 } 4757 4758 return this._rs._text; 4759 }, 4760 4761 /** 4762 * Searches for a match between a substring (or regular expression) and the contained 4763 * string, and returns the matches 4764 * 4765 * @param {string | object} regex 4766 * @returns {array} strings matches or empty array if none are found 4767 */ 4768 match : function(regex) { 4769 4770 return this._rs.match(regex); 4771 4772 }, 4773 4774 /** 4775 * Returns the character at the given 'index', or empty string if none is found 4776 * 4777 * @param {number} index index of the character 4778 * @returns {string} the character 4779 */ 4780 charAt : function(index) { 4781 4782 return this._rs.charAt(index); 4783 4784 }, 4785 4786 4787 /** 4788 * Concatenates the text from another RiText at the end of this one 4789 * 4790 * @returns {object} this RiText 4791 */ 4792 concat : function(riText) { 4793 4794 return this._rs._text.concat(riText.text()); 4795 4796 }, 4797 4798 /** 4799 * Returns true if and only if this string contains the specified sequence of char values. 4800 * 4801 * @param {string} text text to be checked 4802 * @returns {boolean} 4803 */ 4804 containsWord : function(text) { 4805 4806 return this._rs.indexOf(text) > -1; 4807 4808 }, 4809 4810 /** 4811 * Tests if this string ends with the specified suffix. 4812 * 4813 * @param {string} substr string the suffix. 4814 * 4815 * @returns {boolean} true if the character sequence represented by the argument is a suffix of 4816 * the character sequence represented by this object; false otherwise. * 4817 */ 4818 endsWith : function(substr) { 4819 4820 return endsWith(this._rs._text, substr); 4821 4822 }, 4823 4824 /** 4825 * Compares this RiText to the specified object. The result is true if and only if the 4826 * argument is not null and is a RiText object that represents the same sequence of 4827 * characters as this object. 4828 * 4829 * @param {object} RiText RiText object to compare this RiText against. 4830 * @returns {boolean} true if the RiText are equal; false otherwise. 4831 */ 4832 equals : function(RiText) { 4833 4834 return RiText._rs._text === this._rs._text; 4835 4836 }, 4837 4838 /** 4839 * Compares this RiText to another RiText, ignoring case considerations. 4840 * 4841 * @param {string | object} str String or RiText object to compare this RiText against 4842 * @returns {boolean} true if the argument is not null and the Strings are equal, ignoring 4843 * case; false otherwise. 4844 */ 4845 equalsIgnoreCase : function(str) { 4846 4847 if (typeof str === S) { 4848 4849 return str.toLowerCase() === this._rs._text.toLowerCase(); 4850 } 4851 else { 4852 4853 return str.text().toLowerCase() === this._rs._text.toLowerCase(); 4854 } 4855 4856 }, 4857 4858 /** 4859 * Returns the index within this string of the first occurrence of the specified character. 4860 * 4861 * @param {string} searchstring (Required) or character to search for 4862 * @param {number} start (Optional) The start position in the string to start the search. If omitted, 4863 * the search starts from position 0 4864 * @returns {number} the first index of the matching pattern or -1 if none are found 4865 */ 4866 indexOf : function(searchstring, start) { 4867 4868 return this._rs._text.indexOf(searchstring, start); 4869 4870 }, 4871 4872 /** 4873 * Inserts 'newWord' at 'wordIdx' and shifts each subsequent word accordingly. 4874 * 4875 * @returns {object} this RiText 4876 */ 4877 insertWordAt : function(newWord, wordIdx) { 4878 4879 var words = this._rs.words(); 4880 if (newWord && newWord.length && wordIdx >= 0 && wordIdx < words.length) { 4881 4882 // filthy hack to preserve punctuation in 'newWord' 4883 words.splice(wordIdx,0, DeLiM+newWord+DeLiM); 4884 4885 4886 this._rs.text( RiTa.untokenize(words).replace(new RegExp(DeLiM,'g'),E) ); 4887 } 4888 4889 return this; 4890 4891 }, 4892 4893 /** 4894 * Returns the index within this string of the last occurrence of the specified character. 4895 * 4896 * @param {string} searchstring The string to search for 4897 * @param {number} start (Optional) The start position in the string to start the search. If omitted, 4898 * the search starts from position 0 4899 * 4900 * @returns {number} the last index of the matching pattern or -1 if none are found 4901 */ 4902 lastIndexOf : function(searchstring, start) { 4903 4904 return this._rs._text.lastIndexOf(searchstring, start); 4905 4906 }, 4907 4908 /** 4909 * Returns the length of this string. 4910 * 4911 * @returns {number} the length 4912 */ 4913 length : function() { 4914 4915 return this._rs._text.length; 4916 4917 }, 4918 4919 4920 /** 4921 * Returns an array of part-of-speech tags, one per word, using RiTa.tokenize() and RiTa.posTag(). 4922 * 4923 * @returns {array} strings of pos, one per word 4924 */ 4925 pos : function() { 4926 4927 var words = RiTa.tokenize((this._rs._text)); // was getPlaintext() 4928 var tags = PosTagger.tag(words); 4929 4930 for ( var i = 0, l = tags.length; i < l; i++) { 4931 if (!strOk(tags[i])) 4932 err("RiText: can't parse pos for:" + words[i]); 4933 } 4934 4935 return tags; 4936 4937 }, 4938 4939 /** 4940 * Returns the part-of-speech tag for the word at 'index', using RiTa.tokenize() and RiTa.posTag(). 4941 * 4942 * @param {number} index the word index 4943 * @returns {string} the pos 4944 */ 4945 posAt : function(index) { 4946 4947 var tags = this._rs.pos(); 4948 4949 if (isNull(tags) || tags.length == 0 || index < 0 || index >= tags.length) 4950 return E; 4951 4952 return tags[index]; 4953 4954 }, 4955 4956 /** 4957 * Removes the character at the specified index 4958 * 4959 * @param {number} ind the index 4960 * @returns {object} RiText 4961 */ 4962 removeCharAt : function(ind) { 4963 4964 this._rs.removeCharAt(ind); 4965 return this; 4966 4967 }, 4968 4969 /** 4970 * Replaces the character at 'idx' with 'replaceWith'. If the specified 'idx' is less than 4971 * zero, or beyond the length of the current text, there will be no effect. 4972 * 4973 * @param {number} idx the character index 4974 * @param {string} replaceWith the replacement 4975 * @returns {object} this RiText 4976 */ 4977 replaceCharAt : function(idx, replaceWith) { 4978 4979 if (idx < 0 || idx >= this._rs.length()) 4980 return this; 4981 4982 var s = this._rs.text(); 4983 var beg = s.substring(0, idx); 4984 var end = s.substring(idx + 1); 4985 var s2 = null; 4986 4987 if (replaceWith) 4988 s2 = beg + replaceWith + end; 4989 else 4990 s2 = beg + end; 4991 4992 return this._rs.text(s2); 4993 4994 }, 4995 4996 /** 4997 * Replaces the first instance of 'regex' with 'replaceWith' 4998 * 4999 * @param {string | regex} regex the pattern 5000 * @param {string} replaceWith the replacement 5001 * 5002 * @returns this RiText 5003 */ 5004 replaceFirst : function(regex, replaceWith) { 5005 5006 if (replaceWith) 5007 this._rs._text = this._rs._text.replace(regex,replaceWith); 5008 return this; 5009 5010 }, 5011 5012 /** 5013 * Replaces the last instance of 'regex' with 'replaceWith' 5014 * 5015 * @param {string | regex} regex the pattern 5016 * @param {string} replaceWith the replacement 5017 * 5018 * @returns this RiText 5019 */ 5020 replaceLast : function(regex, replaceWith) { 5021 if (replaceWith) { 5022 5023 5024 if (this._rs._text.lastIndexOf(regex)>=0){//this do not work for regex.. 5025 var ind = this._rs._text.lastIndexOf(regex); 5026 var before = this._rs._text.substring(0, ind); 5027 var after = this._rs._text.substring(ind+regex.length); 5028 5029 var finished = before + replaceWith + after; 5030 this._rs._text = finished; 5031 5032 return this; 5033 } 5034 }; 5035 5036 }, 5037 5038 5039 /** 5040 * Replaces each substring of this string that matches the given regular expression with the 5041 * given replacement. 5042 * 5043 * @param {string | regex } pattern the pattern to be matched 5044 * @param {string} replacement the replacement sequence of char values 5045 * @returns {object} this RiText 5046 */ 5047 replaceAll : function(pattern, replacement) { 5048 5049 if (pattern && (replacement || replacement==='')) { 5050 this._rs._text = replaceAll(this._rs._text, pattern, replacement); 5051 } 5052 return this; 5053 5054 }, 5055 5056 /** 5057 * Replaces the word at 'wordIdx' with 'newWord' 5058 * 5059 * @param {number} wordIdx the index 5060 * @param {string} newWord the replacement 5061 * 5062 * @returns {object} this RiText 5063 */ 5064 replaceWordAt : function(wordIdx, newWord) { 5065 5066 var words = this.words(); 5067 5068 if (wordIdx >= 0 && wordIdx < words.length) { 5069 5070 words[wordIdx] = newWord; 5071 5072 this._rs.text(RiTa.untokenize(words)); 5073 } 5074 5075 return this; 5076 5077 }, 5078 5079 /** 5080 * Extracts a part of a string from this RiText 5081 * 5082 * @param {number} begin (Required) The index where to begin the extraction. First character is at 5083 * index 0 5084 * @param {number} end (Optional) Where to end the extraction. If omitted, slice() selects all 5085 * characters from the begin position to the end of the string 5086 * @returns {object} this RiText 5087 */ 5088 slice : function(begin, end) { 5089 5090 var res = this._rs._text.slice(begin, end) || E; 5091 return this._rs.text(res); 5092 5093 }, 5094 5095 /** 5096 * Split a RiText into an array of sub-RiText and return the new array. 5097 * 5098 * If an empty string ("") is used as the separator, the string is split between each character. 5099 * 5100 * @param {string} separator (Optional) Specifies the character to use for splitting the string. If 5101 * omitted, the entire string will be returned. If an empty string ("") is used as the separator, 5102 * the string is split between each character. 5103 * 5104 * @param {number} limit (Optional) An integer that specifies the number of splits 5105 * 5106 * @returns {array} RiText 5107 */ 5108 split : function(separator, limit) { 5109 5110 var parts = this._rs._text.split(separator, limit); 5111 var rs = []; 5112 for ( var i = 0; i < parts.length; i++) { 5113 if (!isNull(parts[i])) 5114 rs.push(new RiText(parts[i])); 5115 } 5116 return rs; 5117 5118 }, 5119 5120 /** 5121 * Tests if this string starts with the specified prefix. 5122 * 5123 * @param {string} substr string the prefix 5124 * @returns {boolean} true if the character sequence represented by the argument is a prefix of 5125 * the character sequence represented by this string; false otherwise. Note also 5126 * that true will be returned if the argument is an empty string or is equal to this 5127 * RiText object as determined by the equals() method. 5128 */ 5129 startsWith : function(substr) { 5130 5131 return this._rs.indexOf(substr) == 0; 5132 5133 }, 5134 5135 /** 5136 * Extracts the characters from a string, between two specified indices, and sets the 5137 * current text to be that string. 5138 * 5139 * @param {number} from The index where to start the extraction. First character is at 5140 * index 0 5141 * @param {number} to (optional) The index where to stop the extraction. If omitted, it extracts the 5142 * rest of the string 5143 * @returns {object} this RiText 5144 */ 5145 substring : function(from, to) { 5146 5147 return this._rs.text(this._rs._text.substring(from, to)); 5148 5149 }, 5150 5151 5152 /** 5153 * Extracts the characters from this objects contained string, beginning at 'start' and 5154 * continuing through the specified number of characters, and sets the current text to be 5155 * that string. (from Javascript String) 5156 * 5157 * @param {number} start The index where to start the extraction. First character is at 5158 * index 0 5159 * @param {number} length (optional) The index where to stop the extraction. If omitted, it extracts the 5160 * rest of the string 5161 * @returns {object} this RiText 5162 */ 5163 substr : function(start, length) { 5164 5165 var res = this._rs._text.substr(start, length); 5166 return this._rs.text(res); 5167 5168 }, 5169 5170 /** 5171 * Converts this object to an array of RiText objects, one per character 5172 * 5173 * @returns {array} RiTexts with each letter as its own RiText element 5174 */ 5175 toCharArray : function() { 5176 var parts = this._rs._text.split(E); 5177 var rs = []; 5178 for ( var i = 0; i < parts.length; i++) { 5179 if (!isNull(parts[i])) 5180 rs.push(parts[i]); 5181 } 5182 return rs; 5183 }, 5184 5185 /** 5186 * Converts all of the characters in this RiText to lower case 5187 * 5188 * @returns {object} this RiText 5189 */ 5190 toLowerCase : function() { 5191 5192 return this._rs.text(this._rs._text.toLowerCase()); 5193 5194 }, 5195 5196 /** 5197 * Converts all of the characters in this RiText to upper case 5198 * 5199 * @returns {object} this RiText 5200 */ 5201 toUpperCase : function() { 5202 5203 return this._rs.text(this._rs._text.toUpperCase()); 5204 5205 }, 5206 5207 /** 5208 * Returns a copy of the string, with leading and trailing whitespace omitted. 5209 * 5210 * @returns {object} this RiText 5211 */ 5212 trim : function() { 5213 5214 return this._rs.text(trim(this._rs._text)); 5215 5216 }, 5217 5218 /** 5219 * Returns the word at 'index', according to RiTa.tokenize() 5220 * 5221 * @param {number} index the word index 5222 * @returns {string} the word 5223 */ 5224 wordAt : function(index) { 5225 5226 var words = RiTa.tokenize((this._rs._text)); 5227 if (index < 0 || index >= words.length) 5228 return E; 5229 return words[index]; 5230 5231 }, 5232 5233 /** 5234 * Returns the number of words in the object, according to RiTa.tokenize(). 5235 * 5236 * @returns {number} number of words 5237 */ 5238 wordCount : function() { 5239 5240 if (!this._rs._text.length) return 0; 5241 return this.words().length; 5242 5243 }, 5244 5245 /** 5246 * Returns the array of words in the object, via a call to RiTa.tokenize(). 5247 * 5248 * @returns {array} strings, one per word 5249 */ 5250 words : function() { //TODO: change to words() 5251 5252 return RiTa.tokenize(this._rs._text); 5253 5254 }, 5255 5256 5257 /** 5258 * Returns the distance between the center points of this and another RiText 5259 * @returns {number} the distance 5260 */ 5261 distanceTo : function(riText) 5262 { 5263 var p1 = this.center(), p2 = riText.center(); 5264 return RiTa.distance( p1.x, p1.y, p2.x, p2.y); 5265 }, 5266 5267 /** 5268 * Returns the center point of this RiText as derived from its bounding box 5269 * @returns {object} { x, y } 5270 */ 5271 center : function() { 5272 5273 var bb = this.boundingBox(); 5274 return { x: bb.x+bb.width/2, y: bb.y - bb.height/2 }; 5275 }, 5276 5277 /** 5278 * Splits the object into an array of RiTexts, one per word 5279 * tokenized with the supplied regex. 5280 * 5281 * @param {regex | string} to split 5282 * @returns {array} RiTexts 5283 */ 5284 splitWords : function(regex) { 5285 5286 regex = regex || ' '; 5287 5288 (typeof regex == S) && (regex = new RegExp(regex)); 5289 5290 var l = []; 5291 var txt = this._rs._text; 5292 var words = txt.split(regex); 5293 5294 for ( var i = 0; i < words.length; i++) { 5295 if (words[i].length < 1) continue; 5296 var tmp = this.clone(); 5297 tmp.text(words[i]); 5298 var mx = _wordOffsetFor(this, words, i); 5299 tmp.position(mx, this.y); 5300 l.push(tmp); 5301 } 5302 5303 return l; 5304 }, 5305 5306 /** 5307 * Splits the object into an array of RiTexts, one per letter. 5308 * @returns {array} RiTexts 5309 */ 5310 splitLetters : function() { 5311 5312 var l = []; 5313 var chars = []; 5314 var txt = this.text(); 5315 var len = txt.length; 5316 for (var t = 0; t < len; t++) { 5317 chars[t] = txt.charAt(t); 5318 } 5319 5320 for ( var i = 0; i < chars.length; i++) { 5321 if (chars[i] == ' ') continue; 5322 var tmp = this.clone(); 5323 tmp.text(chars[i]); 5324 var mx = this.charOffset(i); 5325 tmp.position(mx, this.y); 5326 5327 l.push(tmp); 5328 } 5329 5330 return l; 5331 }, 5332 5333 /** 5334 * Returns true if the bounding box for this RiText contains the point mx/my 5335 * 5336 * @param {number} mx 5337 * @param {number} my 5338 * @returns {boolean} 5339 */ 5340 contains : function(mx, my) { 5341 5342 var bb = this.g._getBoundingBox(this); 5343 5344 // // TODO: need to test this with point 5345 // if (!my && Type.get(mx.x) == 'Number' && Type.get(mx.y) == 'Number') { 5346 // mx = mx.x; 5347 // my = mx.y; 5348 // } 5349 // 5350 bb.x += this.x; 5351 bb.y += this.y; 5352 5353 return (!(mx<bb.x || mx > bb.x+bb.width || my > bb.y || my < bb.y-bb.height)); 5354 }, 5355 5356 /** 5357 * Creates and returns a new (copy) of this RiText 5358 * @returns {object} RiText 5359 */ 5360 clone : function() { 5361 5362 var c = new RiText(this.text(), this.x, this.y, this._font); 5363 c.color(this._color.r, this._color.g, this._color.b, this._color.a); 5364 5365 for (prop in this) { 5366 if (typeof this[prop] == F || typeof this[prop] == O) 5367 continue; 5368 c[prop] = this[prop]; 5369 } 5370 5371 return c; 5372 }, 5373 5374 /** 5375 * Set/gets the alignment for this RiText (RiText.LEFT || RiText.CENTER || RiText.RIGHT) 5376 * 5377 * @param {object} align (optional) the alignment 5378 * @returns {object} this RiText (set) or the current font (get) 5379 */ 5380 align : function(align) { 5381 if (arguments.length) { 5382 this._alignment = align; 5383 return this; 5384 } 5385 return this._alignment; 5386 }, 5387 5388 5389 /** 5390 * Set/gets the font for this RiText 5391 * 5392 * @param {object} font (optional) containing the font data OR 5393 * @param {string} font containing the font name AND 5394 * @param {number} size (optional) containing the font size 5395 * @returns {object} this RiText (set) or the current font (get) 5396 */ 5397 font : function(font,size) { 5398 5399 var a = arguments; 5400 5401 if (a.length == 1) { 5402 5403 this._font = font || _getDefaultFont(); 5404 this._font.size = this._font.size || RiText.defaults.fontSize; 5405 this._font.leading = this._font.leading || this._font.size * RiText.defaults.leadingFactor; 5406 return this; 5407 } 5408 else if (a.length == 2) { 5409 5410 return this.font( RiText.createFont(a[0], a[1]) ); 5411 } 5412 5413 return this._font; 5414 }, 5415 5416 5417 /** 5418 * Set/gets the boundingbox visibility for this RiText 5419 * 5420 * @param {boolean} trueOrFalse (optional) true or false 5421 * @returns {object | boolean}this RiText (set) or the current boolean value (get) 5422 */ 5423 showBoundingBox : function(trueOrFalse) { 5424 if (arguments.length == 1) { 5425 this._boundingBoxVisible = trueOrFalse; 5426 return this; 5427 } 5428 return this._boundingBoxVisible; 5429 }, 5430 5431 /** 5432 * Set/gets the color for this RiText 5433 * 5434 * @param {number | array} cr takes 1-4 number values for rgba, or an array of size 1-4 5435 * @param {number} cg 5436 * @param {number} cb 5437 * @param {number} ca 5438 * 5439 * @returns {object} either this RiText (for sets) or the current color object (for gets) 5440 */ 5441 color : function(cr, cg, cb, ca) { 5442 5443 if (arguments.length == 0) 5444 return this._color; 5445 this._color = parseColor.apply(this, arguments); 5446 return this; 5447 }, 5448 5449 /** 5450 * Returns false if the alpha value of this object is <= 0, else true 5451 * @returns {boolean} 5452 */ 5453 isVisible : function() { 5454 5455 if (arguments.length) 5456 err('visible() takes no arguments'); 5457 5458 return this._color.a > 0; 5459 }, 5460 5461 /** 5462 * Set/gets the alpha (transparency) for this RiText 5463 * 5464 * @param {number} a (optional) input (0-255) 5465 * @returns {object | number} either this RiText (for set) or the current alpha value (for get) 5466 */ 5467 alpha : function(a) { 5468 if (arguments.length==1) { 5469 this._color.a = a; 5470 return this; 5471 } 5472 else return this._color.a; 5473 }, 5474 5475 /** 5476 * Set/gets the position for this RiText 5477 * 5478 * @param {number} x (optional) X coordinate 5479 * @param {number} y (optional) Y coordinate 5480 * 5481 * @returns {object} either this RiText (for sets) or object {x, y} (for gets) 5482 */ 5483 position : function(x,y) { 5484 5485 if (!arguments.length) 5486 return { x: this.x, y: this.y }; 5487 this.x = x; 5488 this.y = y; 5489 return this; 5490 }, 5491 5492 /** 5493 * Sets/gets the 2d rotation for this RiText 5494 * 5495 * @param {number} rotate degree to rotate 5496 * 5497 * @returns {object | number} either this RiText (for sets) or the current degree to rotation (for gets) 5498 */ 5499 rotate : function(rotate) { 5500 5501 if (!arguments.length) 5502 return this._rotateZ 5503 this._rotateZ = rotate; 5504 return this; 5505 }, 5506 5507 /** 5508 * Sets/gets the scale factor for this RiText (takes 0-2 arguments) 5509 * 5510 * @param {number} theScaleX the ScaleX ratio 5511 * @param {number} theScaleY (optional) the ScaleY ratio 5512 * 5513 @returns {object | number} either this RiText (for sets) or the current degree of rotation (for gets) 5514 */ 5515 scale : function(theScaleX, theScaleY) { 5516 5517 if (!arguments.length) return { x:this._scaleX, y:this._scaleY }; 5518 5519 if (arguments.length == 1) theScaleY = theScaleX; 5520 5521 this._scaleX = theScaleX; 5522 this._scaleY = theScaleY; 5523 5524 return this; 5525 }, 5526 5527 /** 5528 * Returns the pixel x-offset for the character at 'charIdx' 5529 * 5530 * @param {number} charIdx 5531 * @returns {number} the pixel x-offset 5532 */ 5533 charOffset : function(charIdx) { 5534 5535 var theX = this.x; 5536 5537 if (charIdx > 0) { 5538 5539 var txt = this.text(); 5540 5541 var len = txt.length; 5542 if (charIdx > len) // -1? 5543 charIdx = len; 5544 5545 var sub = txt.substring(0, charIdx); 5546 theX = this.x + this.g._textWidth(this._font, sub); 5547 } 5548 5549 return theX; 5550 }, 5551 5552 /** 5553 * Returns the pixel x-offset for the word at 'wordIdx' 5554 * @param {number} wordIdx 5555 * @returns {number} the pixel x-offset 5556 */ 5557 wordOffset : function(wordIdx) { 5558 5559 var words = this.text().split(' '); 5560 return _wordOffsetFor(this, words, wordIdx); 5561 }, 5562 5563 /** 5564 * Returns the bounding box for the current text. 5565 * @returns {object} x,y,width,height 5566 */ 5567 boundingBox : function() { 5568 5569 var bb = this.g._getBoundingBox(this); 5570 // if (0 && transformed) { // tmp: do with matrix 5571 // bb.x += this.x; 5572 // bb.y += this.y; 5573 // bb.width *= this._scaleX; 5574 // bb.height *= this._scaleY; 5575 // } 5576 // * @param {boolean} (optional, default=false) 5577 // * if true, bounding box is first transformed (rotate,translate,scale) 5578 // * according to the RiTexts current matrix 5579 return bb; 5580 }, 5581 5582 /** 5583 * Returns the current width of the text (derived from the bounding box) 5584 * @returns {number} the width of the text 5585 */ 5586 //@param {boolean} (optional, default=false) if true, width is first scaled 5587 textWidth : function() { 5588 5589 return this.g._textWidth(this._font,this._rs._text); 5590 }, 5591 5592 /** 5593 * Returns the current height of the text (derived from the bounding box) 5594 * @returns {number} the current height of the text 5595 */ 5596 // * @param {boolean} (optional, default=false) if true, height is first scaled 5597 textHeight : function() { 5598 5599 return this.g._textHeight(this); 5600 }, 5601 5602 /** 5603 * Sets/gets the size of the current font. Note: this method only 5604 * effects only scaleX/Y, not the font's internal properties 5605 * 5606 * @param {number} sz (optional) font size 5607 * 5608 * @returns {object | number} either this RiText (for set) or the current font size (for get) 5609 */ 5610 fontSize : function(sz) { 5611 5612 // TODO: what to do if scaleX and scaleY are different 5613 5614 return (arguments.length) ? this.scale( sz / this._font.size) 5615 : (this._font.size * this._scaleX); 5616 }, 5617 5618 /** 5619 * Returns the ascent of the current font 5620 * @returns {number} the ascent of the current font 5621 */ 5622 textAscent : function() { 5623 5624 return this.g._textAscent(this); 5625 }, 5626 5627 /** 5628 * Returns the descent of the current font 5629 * @returns {number} the descent of the current font 5630 */ 5631 textDescent : function() { 5632 5633 return this.g._textDescent(this); 5634 }, 5635 5636 5637 /* 5638 * Returns all existing text behaviors for the object 5639 * @returns {array} 5640 behaviors: function () { 5641 5642 return this._behaviors; 5643 5644 },*/ 5645 5646 5647 /** 5648 * Adds a new text behaviors to the object 5649 * @returns {array} 5650 */ 5651 _addBehavior: function ( behavior ) { 5652 5653 this._behaviors.push( behavior ); 5654 5655 }, 5656 5657 /** 5658 * Removes the text behaviors for the object 5659 * @param {string} the behaviors 5660 */ 5661 _removeBehavior: function ( behavior ) { 5662 5663 var i = this._behaviors.indexOf(behavior); 5664 5665 if ( i !== -1 ) { 5666 5667 this._behaviors.splice( i, 1 ); 5668 5669 } 5670 5671 }, 5672 5673 /** 5674 * Removes all text behaviors for the object 5675 * @returns {array} 5676 */ 5677 _removeBehaviors: function () { 5678 5679 this._behaviors = []; 5680 5681 }, 5682 5683 // TODO: make PRIVATE 5684 /** 5685 * Updates existing text behaviors for the object 5686 * @param {string} the behaviors 5687 */ 5688 _updateBehaviors: function (time) { 5689 5690 var i = 0; 5691 var num = this._behaviors.length; 5692 var time = time || Date.now(); 5693 5694 while ( i < num ) { 5695 5696 if (this._behaviors[ i ].update(time) ) { 5697 i++; 5698 5699 } else { 5700 5701 this._behaviors.splice(i, 1); 5702 num --; 5703 5704 } 5705 } 5706 }, 5707 5708 /** @private */ 5709 toString : function() { 5710 5711 var s = (this._rs && this._rs._text) || 'undefined'; 5712 return '['+Math.round(this.x)+","+Math.round(this.y)+",'"+s+"']"; 5713 } 5714 } 5715 5716 // //////////////////////////////////////////////////////////// 5717 // RiTa object (singleton) 5718 // //////////////////////////////////////////////////////////// 5719 5720 /** 5721 * @namespace A collection of static variables and functions for the RiTa library 5722 */ 5723 RiTa = { 5724 5725 // RiTa constants ================================= 5726 5727 /** The current version of the RiTa tools */ 5728 5729 VERSION : '0.15', 5730 5731 /** 5732 * a=alpha 5733 * b=beta 5734 * @private 5735 */ 5736 PHASE : 'a', 5737 5738 /** @private */ 5739 P5_COMPATIBLE : true, 5740 5741 /** For tokenization, Can't -> Can not, etc. */ 5742 SPLIT_CONTRACTIONS : false, 5743 5744 // For Conjugator ================================= 5745 5746 //TODO: add comments 5747 5748 PHONEMES : 'phonemes', 5749 5750 STRESSES : 'stresses', 5751 5752 SYLLABLES : 'syllables', 5753 5754 FIRST_PERSON : 1, 5755 5756 SECOND_PERSON : 2, 5757 5758 THIRD_PERSON : 3, 5759 5760 PAST_TENSE : 4, 5761 5762 PRESENT_TENSE : 5, 5763 5764 FUTURE_TENSE : 6, 5765 5766 SINGULAR : 7, 5767 5768 PLURAL : 8, 5769 5770 NORMAL : 9, 5771 5772 ABBREVIATIONS : [ "Adm." ,"Capt." ,"Cmdr." ,"Col." ,"Dr." ,"Gen." ,"Gov." ,"Lt." ,"Maj." ,"Messrs." ,"Mr.","Mrs." ,"Ms." ,"Prof." ,"Rep." ,"Reps." ,"Rev." ,"Sen." ,"Sens." ,"Sgt." ,"Sr." ,"St.","a.k.a." ,"c.f." ,"i.e." ,"e.g." ,"vs." ,"v.", "Jan." ,"Feb." ,"Mar." ,"Apr." ,"Mar." ,"Jun." ,"Jul." ,"Aug." ,"Sept." ,"Oct." ,"Nov." ,"Dec." ], 5773 5774 /** The infinitive verb form - 'to eat an apple' */ 5775 INFINITIVE : 1, 5776 5777 /** Gerund form of a verb - 'eating an apple' */ 5778 GERUND : 2, 5779 5780 /** The imperative verb form - 'eat an apple!' */ 5781 IMPERATIVE : 3, 5782 5783 /** Bare infinitive verb form - 'eat an apple' */ 5784 BARE_INFINITIVE : 4, 5785 5786 /** The subjunctive verb form */ 5787 SUBJUNCTIVE : 5, 5788 5789 /** Set to true to disable all console output */ 5790 SILENT : false, 5791 5792 // Start Methods ================================= 5793 5794 /** 5795 * Joins array of word, similar to words.join(" "), but attempts to preserve punctuation position 5796 * unless the 'adjustPunctuationSpacing' flag is set to false 5797 * 5798 * @param {array} arr the array to join 5799 * @param {string} delim the characters to place between each array element 5800 * @param {boolean} adjustPunctuationSpacing (optional, default=true) 5801 * 5802 * @returns {string} the joined array as string 5803 */ 5804 untokenize: function(arr, delim, adjustPunctuationSpacing) { 5805 5806 delim = delim || SP; 5807 adjustPunctuationSpacing = adjustPunctuationSpacing || 1; 5808 5809 if (adjustPunctuationSpacing) { 5810 var newStr = arr[0] || E; 5811 for ( var i = 1; i < arr.length; i++) { 5812 if (arr[i]) { 5813 if (!RiTa.isPunctuation(arr[i])) 5814 newStr += delim; 5815 newStr += arr[i]; 5816 } 5817 } 5818 return newStr; 5819 } 5820 5821 return arr.join(delim); 5822 }, 5823 5824 /** 5825 * Returns a random number between min(default=0) and max(default=1) 5826 * @returns {number} 5827 */ 5828 random: function() { 5829 5830 var currentRandom = Math.random(); 5831 if (arguments.length === 0) return currentRandom; 5832 if (arguments.length === 1) return currentRandom * arguments[0]; 5833 var aMin = arguments[0], aMax = arguments[1]; 5834 5835 return currentRandom * (aMax - aMin) + aMin; 5836 5837 }, 5838 5839 /** 5840 * Convenience method to get the distance between 2 points 5841 * @param {number} x1 5842 * @param {number} y1 5843 * @param {number} x2 5844 * @param {number} y2 5845 * 5846 * @returns {number} 5847 */ 5848 distance: function(x1,y1,x2,y2) { 5849 5850 var dx = x1 - x2, dy = y1 - y2; 5851 return Math.sqrt(dx * dx + dy * dy); 5852 5853 }, 5854 5855 5856 /** 5857 * Starts a timer that calls 'onRiTaEvent', or the specified callback, 5858 * every 'period' seconds 5859 * 5860 * @param {number} period 5861 * @param {function} callback called every 'period' seconds 5862 * @returns {number} the unique id for the timer 5863 */ 5864 timer: function(period, callback) { 5865 5866 var id = setInterval(function(){ 5867 5868 RiTaEvent(RiTa, 'tick')._fire(callback); 5869 5870 }, period * 1000); 5871 5872 return id; 5873 }, 5874 5875 /** 5876 * Returns true if 'tag' is a valid PENN part-of-speech tag (e.g. cd, fw, jj, ls, nn, sym, vbg, wp) 5877 * @param {string} tag the PENN part-of-speech tag 5878 * @returns {boolean} true if the tag a valid PENN part-of-speech tag 5879 */ 5880 _isPosTag : function(tag) { 5881 return PosTagger.isTag(tag); 5882 5883 }, 5884 5885 // TODO: example 5886 /** 5887 * Tags the word (as usual) with a part-of-speech from the Penn tagset, 5888 * then returns the corresponding part-of-speech for WordNet from the 5889 * set { 'n', 'v', 'a', 'r' } as a string. 5890 * 5891 * @param {string | array} words the text to be tagged 5892 * @returns {string | array} the corresponding part-of-speech for WordNet 5893 */ 5894 _tagForWordNet : function(words) { 5895 5896 var posArr = RiTa.getPosTags(words); 5897 //var posArr = posTag(words); 5898 if (!isNull(words) && posArr.length) { 5899 for ( var i = 0; i < posArr.length; i++) { 5900 var pos = posArr[i]; 5901 if (PosTagger.isNoun(pos)) posArr[i] = "n"; 5902 if (PosTagger.isVerb(pos)) posArr[i] = "v"; 5903 if (PosTagger.isAdverb(pos)) posArr[i] = "r"; 5904 if (PosTagger.isAdj(pos)) posArr[i] = "a"; 5905 } 5906 return posArr; 5907 } 5908 return []; 5909 }, 5910 5911 //TODO: example 5912 /** 5913 * Uses the default PosTagger to tag the input with a tag from the PENN tag set 5914 * @param {string | array} words the text to be tagged 5915 * @retuns {string | array} 5916 * 5917 */ 5918 getPosTags : function(words) { 5919 5920 var arr = Type.is(words,S) ? RiTa.tokenize(words) : words; 5921 return PosTagger.tag(arr); 5922 }, 5923 5924 // TODO: example 5925 /** 5926 * Takes an array of words and of tags and returns a 5927 * combined String of the form: 5928 * <pre>"The/dt doctor/nn treated/vbd dogs/nns"</pre> 5929 * assuming a "/" as 'delimiter'. 5930 * 5931 * @param {string} words the text to tag 5932 * @returns {string} 5933 */ 5934 getPosTagsInline : function(words, delimiter) { 5935 5936 if (!words || !words.length) return E; 5937 5938 delimiter = delimiter || '/'; 5939 words = Type.is(words,S) ? RiTa.tokenize(words) : words; 5940 5941 var sb = E, tags = RiTa.getPosTags(words); 5942 for (var i = 0; i < words.length; i++) { 5943 5944 sb += (words[i]); 5945 if (!RiTa.isPunctuation(words[i])) { 5946 sb += delimiter + tags[i]; 5947 } 5948 sb += SP; 5949 } 5950 5951 return sb.trim(); 5952 }, 5953 5954 // TODO: example 5955 /** 5956 * Converts a PENN part-of-speech tag to the simplified WordNet scheme 5957 * (e.g. nn -> n, nns -> n, vbz -> v, rb -> r) 5958 * { "n" (noun), "v"(verb), "a"(adj), "r"(adverb), "-"(other) } 5959 * as a String. 5960 * 5961 * @param {string} tag pos tag to convert 5962 * @returns {string} simplified WordNet tag 5963 */ 5964 posToWordNet : function(tag) { 5965 5966 if (Type.get(tag) != S) 5967 err('Arg1 must be string'); 5968 5969 if (tag.length==0) return E; 5970 5971 if (PosTagger.isNoun(tag)) 5972 return "n"; 5973 else if (PosTagger.isVerb(tag)) 5974 return "v"; 5975 else if (PosTagger.isAdverb(tag)) 5976 return "r"; 5977 else if (PosTagger.isAdj(tag)) 5978 return "a"; 5979 else 5980 return "-"; 5981 }, 5982 5983 /** 5984 * Returns the present participle form of the stemmed or non-stemmed 'verb'. 5985 * @param {string} verb the verb 5986 * @returns {string} the present participle form of the verb 5987 */ 5988 getPresentParticiple : function(verb) { 5989 5990 // TODO: need to call stem() and try again if first try fails 5991 return Conjugator().getPresentParticiple(verb); 5992 }, 5993 5994 /** 5995 * Returns the past participle form of the stemmed or non-stemmed 'verb'. 5996 * @param {string} verb the verb 5997 * @returns {string} the past participle form of the verb 5998 */ 5999 getPastParticiple : function(verb) { 6000 6001 // TODO: need to call stem() and try again if first try fails 6002 return Conjugator().getPastParticiple(verb); 6003 }, 6004 6005 // TODO: 2 examples 6006 /** 6007 * Conjugates the 'verb' according to the specified options 6008 * @param {string} verb the verb stem 6009 * @param {object} args containing the relevant options for the conjugator 6010 * @returns {string} the conjugated verb 6011 */ 6012 conjugate : function(verb, args) { 6013 6014 return Conjugator().conjugate(verb, args); 6015 }, 6016 6017 // TODO: does this method requires a pre-stemmed noun? check tests... 6018 // does it work only with noun? (check 'natural') 6019 // TODO: 2 examples (regular & irregular) 6020 6021 /** 6022 * Pluralizes a word according to pluralization rules (see regexs in constants) 6023 * Returns the regular or irregular plural form of noun. 6024 * 6025 * @param {string} word the noun 6026 * 6027 * @returns {string} the plural form of noun 6028 */ 6029 pluralize : function(word) { 6030 6031 if (!word.length) return E; 6032 6033 var i, rule, rules = PLURAL_RULES; 6034 6035 if (inArray(MODALS, word.toLowerCase())) { 6036 return word; 6037 } 6038 6039 i = rules.length; 6040 while (i--) { 6041 rule = rules[i]; 6042 if (rule.applies(word.toLowerCase())) { 6043 return rule.fire(word); 6044 } 6045 } 6046 6047 return DEFAULT_PLURAL_RULE.fire(word); 6048 }, 6049 6050 //TODO: 2 examples (regular & irregular) 6051 /** 6052 * Singularize a word according to singularization rules (see regexs in constants) 6053 6054 * @param {string} word the noun 6055 * @returns {string} the singular form of noun 6056 */ 6057 singularize : function(word) { 6058 6059 if (!strOk(word)) return E; 6060 6061 err('Implement me!'); 6062 }, 6063 6064 6065 /** 6066 * Removes blank space from either side of a string 6067 * 6068 * @param {string} the input string 6069 * 6070 * @returns {string} 6071 */ 6072 trim : function(str) { 6073 6074 return trim(str); // delegate to private 6075 6076 }, 6077 6078 6079 /** 6080 * Tokenizes the string according to Penn Treebank conventions 6081 * See: http://www.cis.upenn.edu/~treebank/tokenization.html 6082 * 6083 * @param {string} words a sentence 6084 * @param {string | regex} regex (optional) the pattern to be used for tozenization 6085 * 6086 * @return{array} strings, which each element is a single token (or word) 6087 */ 6088 tokenize : function(words, regex) { 6089 6090 //TODO: 2 examples for doc comment, one with 1 arg, one with 2 (a regex that splits on spaces) 6091 6092 if (regex) return words.split(regex); 6093 6094 words = trim(words).replace(/``/g, "`` "); 6095 words = words.replace(/''/g, " ''"); 6096 words = words.replace(/([\\?!\"\\.,;:@#$%&])/g, " $1 "); 6097 words = words.replace(/\\.\\.\\./g, " ... "); 6098 words = words.replace(/\\s+/g, SP); 6099 words = words.replace(/,([^0-9])/g, " , $1"); 6100 words = words.replace(/([^.])([.])([\])}>\"']*)\\s*$/g, "$1 $2$3 "); 6101 words = words.replace(/([\[\](){}<>])/g, " $1 "); 6102 words = words.replace(/--/g, " -- "); 6103 words = words.replace(/$/g, SP); 6104 words = words.replace(/^/g, SP); 6105 words = words.replace(/([^'])' /g, "$1 ' "); 6106 words = words.replace(/'([SMD]) /g, " '$1 "); 6107 6108 if (RiTa.SPLIT_CONTRACTIONS) { // SAVE 6109 words = words.replace(/'ll /g, " 'll "); 6110 words = words.replace(/'re /g, " 're "); 6111 words = words.replace(/'ve /g, " have "); 6112 words = words.replace(/n't /g, " not "); 6113 6114 words = words.replace(/'LL /g, " 'LL "); 6115 words = words.replace(/'RE /g, " 'RE "); 6116 words = words.replace(/'VE /g, " 'VE "); 6117 words = words.replace(/N'T /g, " N'T "); 6118 } 6119 6120 words = words.replace(/ ([Cc])an't /g, " $1an not "); 6121 words = words.replace(/ ([Cc])annot /g, " $1an not "); 6122 words = words.replace(/ ([Dd])idn't /g, " $1id not "); 6123 words = words.replace(/ ([CcWw])ouldn't /g, " $1ould not "); 6124 6125 6126 // "Nicole I. Kidman" gets tokenized as "Nicole I . Kidman" 6127 words = words.replace(/ ([A-Z]) \\./g, " $1. "); 6128 words = words.replace(/\\s+/g, SP); 6129 words = words.replace(/^\\s+/g, E); 6130 6131 return trim(words).split(/\s+/); // DCH: fixed bug here, 6/3/12 6132 6133 }, 6134 6135 6136 // TODO: test and (probably) re-implement from RiTa (RiSplitter.java) 6137 /** 6138 * Splits the 'text' into sentences (according to PENN Treebank conventions) 6139 * 6140 * @param {string} text the text to be split 6141 * @param {string | regex} regex (optional) the pattern to be used for tozenization 6142 * 6143 * @returns {array} of sentences 6144 */ 6145 splitSentences : function(text, regex) { 6146 6147 var arr = text.match(/(\S.+?[.!?])(?=\s+|$)/g); 6148 6149 return (text.length && arr && arr.length) ? arr : [ text ]; 6150 6151 }, 6152 6153 /** 6154 * Returns true if and only if the string matches 'pattern' 6155 * 6156 * @param {string} string string to test 6157 * @param {string | regex} pattern object containing regular expression 6158 * @returns {boolean} true if matched, else false 6159 */ 6160 _regexMatch : function(string, pattern) { 6161 6162 if (isNull(string) || isNull(pattern)) 6163 return false; 6164 6165 if (typeof pattern === S) 6166 pattern = new RegExp(pattern); 6167 6168 return pattern.test(string); 6169 6170 }, 6171 6172 /** 6173 * Replaces all matches of 'pattern' in the 'string' with 'replacement' 6174 * 6175 * @param {string} string to test 6176 * @param {string | regex } pattern object containing regular expression 6177 * @param {string} replacement the replacement 6178 * @returns {string} with replacements or thestring on error 6179 */ 6180 _regexReplace : function(string, pattern, replacement) { 6181 6182 if (isNull(string) || isNull(pattern)) 6183 return E; 6184 if (typeof pattern === S) 6185 pattern = new RegExp(pattern); // TODO: is this necessary? 6186 return string.replace(pattern, replacement); 6187 6188 }, 6189 6190 /** 6191 * Returns true if 'input' is an abbreviation 6192 * 6193 * @param {string} input 6194 * @param {boolean} caseSensitive (optional, default=false) 6195 * 6196 * @returns {boolean} true if 'input' is an abbreviation 6197 */ 6198 isAbbreviation : function(input, caseSensitive) { 6199 6200 caseSensitive = caseSensitive || false; 6201 input = caseSensitive ? input : RiTa._titleCase(input); 6202 return inArray(this.ABBREVIATIONS, input); 6203 6204 }, 6205 6206 /** 6207 * Returns true if sentence starts with a question word. 6208 * 6209 * @param {string} sentence 6210 * 6211 * @returns {boolean} true if 'sentence' starts with a question word. 6212 */ 6213 isQuestion : function(sentence) { 6214 6215 var sentenceArr = RiTa.tokenize((sentence)); 6216 6217 for (var i = 0; i < QUESTION_STARTS.length; i++) { 6218 6219 if (equalsIgnoreCase(sentenceArr[0], QUESTION_STARTS[i])) 6220 return true; 6221 } 6222 return false; 6223 6224 }, 6225 6226 /** 6227 * Returns true if 'currentWord' is the final word of a sentence. 6228 * This is a simplified version of the OAK/JET sentence splitter method. 6229 * 6230 * @param {string} currentWord 6231 * @param {string} nextWord 6232 * @returns {boolean} true if 'currentWord' is the final word of a sentence. 6233 */ 6234 isSentenceEnd : function(currentWord, nextWord) { 6235 6236 if ( !Type.is(currentWord,S) || !Type.is(nextWord,S) ) 6237 return false; 6238 6239 var cw = currentWord.charAt(0), cWL = currentWord.length; 6240 6241 // token is a mid-sentence abbreviation (mainly, titles) --> middle of sent 6242 if (RiTa.isAbbreviation(currentWord)) 6243 return false; 6244 6245 if (cWL > 1 && cw.indexOf("`'\"([{<") != -1 && RiTa.isAbbreviation(currentWord.substring(1))) 6246 return false; 6247 6248 if (cWL > 2 && ((currentWord.charAt(0) == '\'' 6249 && currentWord.charAt(1) == '\'') || (currentWord.charAt(0) == '`' 6250 && currentWord.charAt(1) == '`')) && RiTa.isAbbreviation(currentWord.substring(2))) 6251 { 6252 return false; 6253 } 6254 6255 var nTL = nextWord.length, 6256 currentToken0 = currentWord.charAt(cWL - 1), 6257 currentToken1 = (cWL > 1) ? currentWord.charAt(cWL - 2) : ' ', 6258 currentToken2 = (cWL > 2) ? currentWord.charAt(cWL - 3) : ' ', 6259 nextToken0 = nextWord.charAt(0), 6260 nextToken1 = (nTL > 1) ? nextWord.charAt(1) : ' ', 6261 nextToken2 = (nTL > 2) ? nextWord.charAt(2) : ' '; 6262 6263 // nextToken does not begin with an upper case, 6264 // [`'"([{<] + upper case, `` + upper case, or < -> middle of sent. 6265 if (! (nextToken0 == nextToken0.toUpperCase() 6266 || (nextToken1 == nextToken1.toUpperCase() && nextToken0.indexOf("`'\"([{<") != -1) 6267 || (nextToken2 == nextToken2.toUpperCase() && ((nextToken0 == '`' && nextToken1 == '`') 6268 || (nextToken0 == '\'' && nextToken1 == '\''))) 6269 || nextWord == "_" || nextToken0 == '<')) 6270 return false; 6271 6272 // ends with ?, !, [!?.]["'}>)], or [?!.]'' -> end of sentence 6273 if (currentToken0 == '?' 6274 || currentToken0 == '!' 6275 || (currentToken1.indexOf("?!.") != -1 && currentToken0.indexOf("\"'}>)") != -1) 6276 || (currentToken2.indexOf("?!.") != -1 && currentToken1 == '\'' && currentToken0 == '\'')) 6277 return true; 6278 6279 // last char not "." -> middle of sentence 6280 if (currentToken0 != '.') return false; 6281 6282 // Note: wont handle Q. / A. at start of sentence, as in a news wire 6283 //if (startOfSentence && (currentWord.equalsIgnoreCase("Q.") 6284 //|| currentWord.equalsIgnoreCase("A.")))return true; 6285 6286 // single upper-case alpha + "." -> middle of sentence 6287 if (cWL == 2 && currentToken1 == currentToken1.toUpperCase()) 6288 return false; 6289 6290 // double initial (X.Y.) -> middle of sentence << added for ACE 6291 if (cWL == 4 && currentToken2 == '.' 6292 && (currentToken1 == currentToken1.toUpperCase() && currentWord.charAt(0) == currentWord.charAt(0).toUpperCase() )) 6293 return false; 6294 6295 // U.S. or U.N. -> middle of sentence 6296 //if (currentToken.equals("U.S.") || currentToken.equals("U.N.")) 6297 //return false; // dch 6298 6299 //if (Util.isAbbreviation(currentToken)) return false; 6300 6301 // (for XML-marked text) next char is < -> end of sentence 6302 // if (nextToken0 == '<') return true; 6303 6304 return true; 6305 6306 }, 6307 6308 /** 6309 * Returns true if sentence starts with a w-question word, eg (who,what,why,where,when,etc.) 6310 * 6311 * @param {string} sentence 6312 * @returns {boolean} true if sentence starts with a w-question word, eg (who,what,why,where,when,etc.) 6313 */ 6314 isW_Question : function(sentence) { 6315 var sentenceArr = RiTa.tokenize((sentence)); 6316 for (var i = 0; i < W_QUESTION_STARTS.length; i++) 6317 if (equalsIgnoreCase(sentenceArr[0], W_QUESTION_STARTS[i])) 6318 return true; 6319 return false; 6320 6321 }, 6322 6323 /** 6324 * Returns a randomly ordered array of unique integers from 0 to numElements. 6325 * The size of the array will be numElements. 6326 * 6327 * @param {number} numElements 6328 * @returns {array} unique integers from 0 to numElements. 6329 */ 6330 randomOrdering : function(numElements) { 6331 6332 if (!numElements || numElements < 1)// !isNum(numElements)) 6333 err("bad arg"); 6334 6335 var o = []; 6336 for ( var i = 0; i < numElements; i++) { 6337 o.push(i); 6338 } 6339 6340 // Array shuffle, from Jonas Raoni Soares Silva (http://jsfromhell.com/array/shuffle) 6341 for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x){} 6342 6343 return o; 6344 6345 }, 6346 6347 /** 6348 * Removes and returns a random element from an array, returning 6349 * it and leaving the array 1 element shorter. 6350 * 6351 * @param {array} arr 6352 * @returns {array} 6353 */ 6354 removeRandom : function(arr) { 6355 6356 var i = Math.floor((Math.random()*arr.length)); 6357 remove(arr, i, i); 6358 return arr; 6359 6360 }, 6361 6362 /** 6363 * Strips all punctuation from the given string 6364 * @param {string} text input 6365 * @param {array} chars (Optional) Characters to ignore 6366 * @returns {string} result 6367 */ 6368 stripPunctuation : function(text) { 6369 6370 return (text === E) ? [E] : text.replace(PUNCTUATION_CLASS,E); // TODO: cache this? 6371 6372 }, 6373 6374 // PUNCTUATION : "����`'""\",;:!?)([].#\"\\!@$%&}<>|+=-_\\/*{^", 6375 6376 6377 /** 6378 * Trims punctuation from each side of the token (does not trim whitespace or internal punctuation). 6379 * 6380 * @param {string} text input 6381 * @returns {string} result 6382 */ 6383 trimPunctuation : function(text) { 6384 6385 // TODO: replace all this with 1 regex 6386 6387 // from the front 6388 while (text.length > 0) { 6389 var c = text.charAt(0); 6390 if (!RiTa.isPunctuation(c)) 6391 break; 6392 text = text.substr(1); 6393 } 6394 6395 // from the back 6396 while (text.length > 0) { 6397 var c = text.charAt(text.length-1); 6398 if (!RiTa.isPunctuation(c)) 6399 break; 6400 text = text.substring(0, text.length-1); 6401 } 6402 return text; 6403 6404 6405 }, 6406 6407 /** 6408 * Returns true if every character of 'text' is a punctuation character 6409 * 6410 * @param {string} text input 6411 * @returns {boolean} 6412 */ 6413 // TEST: PUNCTUATION : "����`'""\",;:!?)([].#\"\\!@$%&}<>|+=-_\\/*{^", 6414 isPunctuation : function(text) { 6415 6416 if (!text || !text.length) return false; 6417 6418 return ONLY_PUNCT.test(text); 6419 6420 }, 6421 6422 /** 6423 * Returns true if any character of 'text' is a punctuation character 6424 * 6425 * @param {string} text input 6426 * @returns {boolean} 6427 */ 6428 // TEST: PUNCTUATION : "����`'""\",;:!?)([].#\"\\!@$%&}<>|+=-_\\/*{^", 6429 hasPunctuation : function(text) { 6430 6431 if (!text || !text.length) return false; 6432 6433 return ONLY_PUNCT.test(text); 6434 }, 6435 6436 /** 6437 * Returns a string containing all phonemes for the input text 6438 * 6439 * @param {string | array} words to analyze 6440 * @returns {string} e.g., "dh-ax-d-ao-g-r-ae-n-f-ae-s-t" 6441 */ 6442 getPhonemes : function(words) { 6443 6444 return RiString(words).analyze().get(RiTa.PHONEMES); 6445 6446 }, 6447 6448 /** 6449 * Analyzes the given string and returns a new string containing the stresses 6450 * for each syllable of the input text 6451 * 6452 * @param {string | array} words to analyze 6453 * 6454 * @returns {string} e.g., "01-0-1", with 1's meaning 'stressed', 6455 * and 0's meaning 'unstressed', 6456 */ 6457 getStresses : function(words) { 6458 6459 return RiString(words).analyze().get(RiTa.STRESSES); 6460 }, 6461 6462 /** 6463 * Analyzes the given string, Returns a String containing the phonemes for each syllable of 6464 * each word of the input text, delimited by dashes (phonemes) and spaces (words) 6465 * 6466 * @param {string | array} words words to analyze 6467 * 6468 * @returns {string} e.g., "dh-ax d-ao-g r-ae-n f-ae-s-t" 6469 * for the 4 syllables of the phrase 'The dog ran fast' 6470 */ 6471 getSyllables : function(words) { 6472 6473 return RiString(words).analyze().get(RiTa.SYLLABLES); 6474 6475 }, 6476 6477 /** 6478 * Returns the # of words in the object according to the default WordTokenizer. 6479 * 6480 * @param {string} words the string to analyze 6481 * @returns {number} 6482 */ 6483 getWordCount : function(words) { 6484 6485 return RiTa.tokenize(words).length; 6486 6487 }, 6488 6489 /** 6490 * Extracts base roots from a word by lower-casing it, then removing prefixes and suffixes. 6491 * @param {string} word the verb to analyze 6492 * @param {string} type one of either 'Lancaster' (the default) or 'Porter', 6493 * to specifiy the stemming algorithm to use 6494 * @returns {string} the stemmed form of 'verb' according to the RiTa stemming rules. 6495 */ 6496 stem : function(word, type) { 6497 6498 type = type || 'Lancaster'; // CONSTANTS 6499 6500 if (type != 'Lancaster' && type != 'Porter') 6501 err('Bad stemmer type: '+type); 6502 6503 var stemImpl = (type == 'Porter') ? Stemmer.stem_Porter : Stemmer.stem_Lancaster; 6504 6505 if (word.indexOf(SP) < 0) return stemImpl(word); 6506 6507 // dump non-words - http://qaa.ath.cx/porter_js_demo.html 6508 word = word.replace(/[^\w]/g, ' '); 6509 6510 // dump multiple white-space - http://qaa.ath.cx/porter_js_demo.html 6511 word = word.replace(/\s+/g, ' '); 6512 6513 var res = [], words = word.split(' '); 6514 6515 for ( var i = 0; i < words.length; i++) { 6516 6517 res.push(stemImpl(words[i])); 6518 } 6519 6520 return res.join(SP); 6521 }, 6522 6523 /** 6524 * For convenience, provides implementations of some of Processing built-in 6525 * method, e.g. size(), background(), etc. and backwards compatibility with 6526 * the original RiTa/Processing Java library 6527 * 6528 * @param {boolean} true to enable compatibility, else false 6529 */ 6530 p5Compatible : function(value) { 6531 6532 if (!arguments.callee.setupAndDraw) { 6533 6534 arguments.callee.setupAndDraw = function() { 6535 if (typeof window.setup == F) setup(); 6536 if (typeof window.draw == F) RiText.loop(); 6537 } 6538 } 6539 6540 if (value) { 6541 6542 // alias for some P5 member functions 6543 RiText.prototype.fill = RiText.prototype.color; 6544 RiText.prototype.textAlign = RiText.prototype.align; 6545 RiText.prototype.textFont = RiText.prototype.font; 6546 RiText.prototype.textSize = RiText.prototype.fontSize; 6547 6548 // alias for some RiTa-java functions 6549 RiText.prototype.setText = RiText.prototype.text; 6550 RiText.prototype.fadeColor = RiText.prototype.colorTo; 6551 RiText.prototype.fadeToText = RiText.prototype.textTo; 6552 RiText.prototype.setColor = RiText.prototype.color; 6553 6554 // alias for RiTa-java static functions 6555 RiText.setDefaultFont = RiText.defaultFont; 6556 RiText.setDefaultColor = RiText.defaultColor; 6557 RiText.setDefaultAlignment = RiText.defaultAlignment; 6558 RiText.setCallbackTimer = RiText.timer; 6559 6560 if (!hasProcessing) { 6561 6562 // add some common P5 global methods (sorry, namespace) 6563 6564 if (!window.line) window.line = RiText.line; 6565 if (!window.size) window.size= RiText.size; 6566 if (!window.width) window.width = RiText.width; // want the var 6567 if (!window.height) window.height= RiText.height; // want the var 6568 if (!window.createFont) window.createFont= RiText.createFont; 6569 if (!window.background) window.background= RiText.background; 6570 if (!window.random) window.random= RiText.random; 6571 if (!window.RIGHT) window.RIGHT = RiText.RIGHT; 6572 if (!window.LEFT) window.LEFT = RiText.LEFT; 6573 if (!window.CENTER) window.CENTER = RiText.CENTER; 6574 6575 window.onload = arguments.callee.setupAndDraw; 6576 } 6577 } 6578 else { // not-compatible (clear extra stuff) 6579 6580 delete RiText.prototype.fill; 6581 delete RiText.prototype.textAlign; 6582 delete RiText.prototype.textFont; 6583 delete RiText.prototype.textSize; 6584 6585 delete RiText.prototype.setColor; 6586 delete RiText.prototype.setText; 6587 delete RiText.prototype.fadeColor; 6588 delete RiText.prototype.fadeToText; 6589 6590 delete RiText.setDefaultFont; 6591 delete RiText.setDefaultColor; 6592 delete RiText.setDefaultAlignment; 6593 delete RiText.setCallbackTimer; 6594 6595 if (!hasProcessing) { 6596 6597 // are these checks needed? 6598 if (window.line === RiText.line) delete window.line; 6599 if (window.size === RiText.size) delete window.size; 6600 if (window.width === RiText.width) delete window.width; 6601 if (window.height === RiText.height) delete window.height; 6602 if (window.createFont === RiText.createFont) delete window.createFont; 6603 if (window.background === RiText.background) delete window.background; 6604 if (window.random === RiText.random) delete window.random; 6605 if (window.RIGHT === RiText.RIGHT) delete window.RIGHT; 6606 if (window.LEFT === RiText.LEFT) delete window.LEFT; 6607 if (window.CENTER === RiText.CENTER) delete window.CENTER; 6608 6609 if (window.onload == arguments.callee.setupAndDraw) 6610 delete window.onload; 6611 } 6612 } 6613 }, 6614 6615 /** 6616 * Converts 'input' to Titlecase (1st letter upper, rest lower) 6617 */ 6618 _titleCase : function(input) { 6619 6620 if (!input || !input.length) return input; 6621 6622 return input.substring(0,1).toUpperCase() + input.substring(1); 6623 } 6624 6625 } // end RiTa object 6626 6627 6628 ///////////////////////////////////////////////////////////////////////// 6629 // RiLetterToSound (adapted from FreeTTS text-to-speech) 6630 ///////////////////////////////////////////////////////////////////////// 6631 6632 var LetterToSound = makeClass(); 6633 6634 /** 6635 * Entry in file represents the total number of states in the file. This 6636 * should be at the top of the file. The format should be "TOTAL n" where n is 6637 * an integer value. 6638 */ 6639 LetterToSound.TOTAL = "TOTAL"; 6640 6641 /** 6642 * Entry in file represents the beginning of a new letter index. This should 6643 * appear before the list of a new set of states for a particular letter. The 6644 * format should be "INDEX n c" where n is the index into the state machine 6645 * array and c is the character. 6646 */ 6647 LetterToSound.INDEX = "INDEX"; 6648 6649 /** 6650 * Entry in file represents a state. The format should be "STATE i c t f" 6651 * where 'i' represents an index to look at in the decision string, c is the 6652 * character that should match, t is the index of the state to go to if there 6653 * is a match, and f is the of the state to go to if there isn't a match. 6654 */ 6655 LetterToSound.STATE = "STATE"; 6656 6657 /** 6658 * Entry in file represents a final state. The format should be "PHONE p" 6659 * where p represents a phone string that comes from the phone table. 6660 */ 6661 LetterToSound.PHONE = "PHONE"; 6662 6663 /** 6664 * If true, the state string is tokenized when it is first read. The side 6665 * effects of this are quicker lookups, but more memory usage and a longer 6666 * startup time. 6667 */ 6668 LetterToSound.tokenizeOnLoad = true; 6669 6670 /** 6671 * If true, the state string is tokenized the first time it is referenced. The 6672 * side effects of this are quicker lookups, but more memory usage. 6673 */ 6674 LetterToSound.tokenizeOnLookup = false; 6675 6676 /** 6677 * The 'window size' of the LTS rules. 6678 */ 6679 LetterToSound.WINDOW_SIZE = 4; 6680 6681 /** The list of phones that can be returned by the LTS rules. 6682 LetterToSound.phonemeTable = null; */ 6683 6684 LetterToSound.prototype = { 6685 6686 /** 6687 * @private 6688 */ 6689 initialize : function() { 6690 6691 /** 6692 * The indices of the starting points for letters in the state machine. 6693 */ 6694 this.letterIndex = {}; 6695 6696 /** 6697 * An array of characters to hold a string for checking against a rule. This 6698 * will be reused over and over again, so the goal was just to have a single 6699 * area instead of new'ing up a new one for every word. The name choice is to 6700 * match that in Flite's <code>cst_lts.c</code>. 6701 */ 6702 this.fval_buff = []; 6703 6704 /** 6705 * The LTS state machine. Entries can be String or State. An ArrayList could 6706 * be used here -- I chose not to because I thought it might be quicker to 6707 * avoid dealing with the dynamic resizing. 6708 */ 6709 this.stateMachine = null; 6710 6711 /** 6712 * The number of states in the state machine. 6713 */ 6714 this.numStates = 0; 6715 6716 // verify that the lts rules are included 6717 if (!LetterToSound.RULES.length) throw Error("No LTS Rules found!"); 6718 6719 // add the rules to the object (static?) 6720 for ( var i = 0; i < LetterToSound.RULES.length; i++) { 6721 6722 this.parseAndAdd(LetterToSound.RULES[i]); 6723 } 6724 }, 6725 6726 _createState : function(type, tokenizer) { 6727 6728 if (type === LetterToSound.STATE) 6729 { 6730 var index = parseInt(tokenizer.nextToken()); 6731 var c = tokenizer.nextToken(); 6732 var qtrue = parseInt(tokenizer.nextToken()); 6733 var qfalse = parseInt(tokenizer.nextToken()); 6734 6735 return new DecisionState(index, c.charAt(0), qtrue, qfalse); 6736 } 6737 else if (type === LetterToSound.PHONE) 6738 { 6739 return new FinalState(tokenizer.nextToken()); 6740 } 6741 6742 throw Error("Unexpected type: "+type); 6743 }, 6744 6745 /** 6746 * Creates a word from the given input line and add it to the state machine. 6747 * It expects the TOTAL line to come before any of the states. 6748 * 6749 * @param line the line of text from the input file 6750 */ 6751 parseAndAdd : function(line) { 6752 6753 var tokenizer = new StringTokenizer(line, SP); 6754 var type = tokenizer.nextToken(); 6755 6756 if (type == LetterToSound.STATE || type == LetterToSound.PHONE) 6757 { 6758 if (LetterToSound.tokenizeOnLoad) 6759 { 6760 this.stateMachine[this.numStates] = this._createState(type, tokenizer); 6761 } 6762 else 6763 { 6764 this.stateMachine[this.numStates] = line; 6765 } 6766 this.numStates++; 6767 } 6768 else if (type==LetterToSound.INDEX) 6769 { 6770 var index = parseInt(tokenizer.nextToken()); 6771 if (index != this.numStates) 6772 { 6773 throw Error("Bad INDEX in file."); 6774 } 6775 else 6776 { 6777 var c = tokenizer.nextToken(); 6778 this.letterIndex[c] = index; 6779 6780 } 6781 //console.log(type+" : "+c+" : "+index + " "+this.letterIndex[c]); 6782 } 6783 else if (type==LetterToSound.TOTAL) 6784 { 6785 this.stateMachine = []; 6786 this.stateMachineSize = parseInt(tokenizer.nextToken()); 6787 } 6788 }, 6789 6790 /** 6791 * Calculates the phone list for a given word. If a phone list cannot be 6792 * determined, <code>[]</code> is returned. 6793 * 6794 * @param {string | array } input the word or words to find 6795 * 6796 * @return {string} phones for word, separated by delim, 6797 * or <code>empty string</code> 6798 */ 6799 getPhones : function(input, delim) { 6800 6801 var ph, result = []; 6802 6803 delim = delim || '-'; 6804 6805 if (Type.is(input, S)) { 6806 6807 if (!input.length) return E; 6808 6809 input = RiTa.tokenize(input); 6810 } 6811 6812 for (var i = 0; i < input.length; i++) { 6813 6814 ph = this._computePhones(input[i]); 6815 result[i] = ph ? ph.join(delim) : E; 6816 } 6817 6818 return result.join(delim); 6819 }, 6820 6821 /** 6822 * Calculates the phone list for a given word. If a phone list cannot be 6823 * determined, <code>null</code> is returned. 6824 * 6825 * @param word the word or words to find 6826 * 6827 * @return array of phones for word or <code>null</code> 6828 */ 6829 _computePhones : function(word) { 6830 6831 var dig, phoneList = [], full_buff, tmp, currentState, startIndex, stateIndex, c; 6832 6833 if (!word || !word.length || RiTa.isPunctuation(word)) 6834 return null; 6835 6836 word = word.toLowerCase(); 6837 6838 if (isNum(word)) { 6839 6840 word = (word.length>1) ? word.split(E) : [word]; 6841 6842 for (var i = 0; i < word.length; i++) { 6843 6844 dig = parseInt(word[i]); 6845 if (dig < 0 || dig > 9) 6846 throw Error("Attempt to pass multi-digit number to LTS: '"+word+"'"); 6847 6848 phoneList.push(Phones.digits[dig]); 6849 } 6850 6851 return phoneList; 6852 } 6853 6854 // Create "000#word#000" 6855 tmp = "000#"+word.trim()+"#000", full_buff = tmp.split(""); 6856 6857 // For each character in the word, create a WINDOW_SIZE 6858 // context on each size of the character, and then ask the 6859 // state machine what's next. Its magic 6860 for (var pos = 0; pos < word.length; pos++) { 6861 6862 for (var i = 0; i < LetterToSound.WINDOW_SIZE; i++) { 6863 6864 this.fval_buff[i] = full_buff[pos + i]; 6865 this.fval_buff[i + LetterToSound.WINDOW_SIZE] = full_buff[i + pos + 1 + LetterToSound.WINDOW_SIZE]; 6866 } 6867 6868 c = word.charAt(pos); 6869 startIndex = this.letterIndex[c]; 6870 6871 // must check for null here, not 0 6872 if (startIndex==null) throw Error("No LTS index for character: '"+ 6873 c + "', isDigit=" + isNum(c) + ", isPunct=" + RiTa.isPunctuation(c)); 6874 6875 stateIndex = parseInt(startIndex); 6876 6877 currentState = this.getState(stateIndex); 6878 6879 while (! (currentState instanceof FinalState) ) { 6880 6881 stateIndex = currentState.getNextState(this.fval_buff); 6882 currentState = this.getState(stateIndex); 6883 } 6884 6885 currentState.append(phoneList); 6886 } 6887 6888 return phoneList; 6889 }, 6890 6891 6892 // /** 6893 // * Makes a character array that looks like "000#word#000". 6894 // * 6895 // * @param word the original word 6896 // * 6897 // * @return the padded word 6898 // */ 6899 // getFullBuff : function( word) { 6900 // 6901 // var full_buff = [], WINDOW_SIZE = LetterToSound.WINDOW_SIZE; 6902 // 6903 // // Make full_buff look like "000#word#000" 6904 // 6905 // for (var i = 0; i < (WINDOW_SIZE - 1); i++) 6906 // full_buff[i] = '0'; 6907 // 6908 // full_buff[WINDOW_SIZE - 1] = '#'; 6909 // 6910 // word.getChars(0, word.length(), full_buff, WINDOW_SIZE); 6911 // 6912 // for (var i = 0; i < (WINDOW_SIZE - 1); i++) 6913 // { 6914 // full_buff[full_buff.length - i - 1] = '0'; 6915 // } 6916 // full_buff[full_buff.length - WINDOW_SIZE] = '#'; 6917 // 6918 // return full_buff; 6919 // }, 6920 6921 getState : function(i) { 6922 6923 if (Type.is(i,N)) { 6924 6925 var state = null; 6926 6927 // WORKING HERE: this check should fail :: see java 6928 if (Type.is(this.stateMachine[i],S)) { 6929 6930 state = this.getState(this.stateMachine[i]); 6931 if (LetterToSound.tokenizeOnLookup) 6932 this.stateMachine[i] = state; 6933 } 6934 else 6935 state = this.stateMachine[i]; 6936 6937 return state; 6938 } 6939 else { 6940 6941 var tokenizer = new StringTokenizer(i, " "); 6942 return this.getState(tokenizer.nextToken(), tokenizer); 6943 } 6944 } 6945 } 6946 6947 ///////////////////////////////////////////////////////////////////////// 6948 // DecisionState 6949 ///////////////////////////////////////////////////////////////////////// 6950 6951 var DecisionState = makeClass(); 6952 6953 DecisionState.TYPE = 1; 6954 6955 DecisionState.prototype = { 6956 6957 /** 6958 * Class constructor. 6959 * 6960 * @param index 6961 * the index into a string for comparison to c 6962 * @param c 6963 * the character to match in a string at index 6964 * @param qtrue 6965 * the state to go to in the state machine on a match 6966 * @param qfalse 6967 * the state to go to in the state machine on no match 6968 */ 6969 // char c, var index, var qtrue, var qfalse; 6970 initialize : function(index, c, qtrue, qfalse) { 6971 6972 this.c = c; 6973 this.index = index; 6974 this.qtrue = qtrue; 6975 this.qfalse = qfalse; 6976 }, 6977 6978 type : function() { 6979 6980 return "DecisionState"; 6981 }, 6982 6983 /** 6984 * Gets the next state to go to based upon the given character sequence. 6985 * 6986 * @param chars the characters for comparison 6987 * 6988 * @returns an index into the state machine. 6989 */ 6990 //public var getNextState(char[] chars) 6991 getNextState : function(chars) { 6992 6993 return (chars[this.index] == this.c) ? this.qtrue : this.qfalse; 6994 }, 6995 6996 /** 6997 * Outputs this <code>State</code> as though it came from the text input 6998 * file. 6999 */ 7000 toString : function() { 7001 return this.STATE + " " + this.index + " " + this.c + " " + this.qtrue + " " + this.qfalse; 7002 }, 7003 7004 /** 7005 * Writes this <code>State</code> to the given output stream. 7006 * 7007 * @param dos 7008 * the data output stream 7009 * 7010 * @throws IOException 7011 * if an error occurs 7012 7013 writeBinary : function(dos) 7014 { 7015 // dos.writeInt(TYPE); 7016 // dos.writeInt(index); 7017 // dos.writeChar(c); 7018 // dos.writeInt(qtrue); 7019 // dos.writeInt(qfalse); 7020 } */ 7021 7022 /** 7023 * Loads a <code>DecisionState</code> object from the given input stream. 7024 * 7025 * @param dis 7026 * the data input stream 7027 * @return a newly constructed decision state 7028 * 7029 * @throws IOException 7030 * if an error occurs 7031 7032 public static State loadBinary(DataInputStream dis) throws IOException 7033 { 7034 var index = dis.readInt(); 7035 char c = dis.readChar(); 7036 var qtrue = dis.readInt(); 7037 var qfalse = dis.readInt(); 7038 return new DecisionState(index, c, qtrue, qfalse); 7039 }*/ 7040 7041 /** 7042 * Compares this state to another state for debugging purposes. 7043 * 7044 * @param other 7045 * the other state to compare against 7046 * 7047 * @return true if the states are equivalent 7048 */ 7049 compare : function(other) { 7050 7051 if (other instanceof DecisionState) 7052 { 7053 var otherState = other; 7054 return index == otherState.index && c == otherState.c 7055 && qtrue == otherState.qtrue && qfalse == otherState.qfalse; 7056 } 7057 return false; 7058 } 7059 7060 }// end DecisionState 7061 7062 // /////////////////////////////////////////////////////////////////////// 7063 // FinalState 7064 // /////////////////////////////////////////////////////////////////////// 7065 7066 var FinalState = makeClass(); 7067 7068 FinalState.TYPE = 2; 7069 7070 FinalState.prototype = { 7071 7072 /** 7073 * Class constructor. The string "epsilon" is used to indicate an empty list. 7074 * @param {} phones the phones for this state 7075 */ 7076 initialize : function(phones) { 7077 7078 this.phoneList = []; 7079 7080 if (phones===("epsilon")) 7081 { 7082 this.phoneList = null; 7083 } 7084 else if (Type.is(phones,A)) { 7085 7086 this.phoneList = phones; 7087 } 7088 else 7089 { 7090 var i = phones.indexOf('-'); 7091 if (i != -1) 7092 { 7093 this.phoneList[0] = phones.substring(0, i); 7094 this.phoneList[1] = phones.substring(i + 1); 7095 } 7096 else 7097 { 7098 this.phoneList[0] = phones; 7099 } 7100 } 7101 }, 7102 7103 type : function() { 7104 7105 return "FinalState"; 7106 }, 7107 7108 /** 7109 * Appends the phone list for this state to the given <code>ArrayList</code>. 7110 * @param {array} array the array to append to 7111 */ 7112 append : function(array) { 7113 7114 if (!this.phoneList) return; 7115 7116 for (var i = 0; i < this.phoneList.length; i++) 7117 array.push(this.phoneList[i]); 7118 }, 7119 7120 /** 7121 * Outputs this <code>State</code> as though it came from the text input 7122 * file. The string "epsilon" is used to indicate an empty list. 7123 * 7124 * @return a <code>String</code> describing this <code>State</code> 7125 */ 7126 toString : function() { 7127 7128 if (!this.phoneList) 7129 { 7130 return LetterToSound.PHONE + " epsilon"; 7131 } 7132 else if (this.phoneList.length == 1) 7133 { 7134 return LetterToSound.PHONE + " " + this.phoneList[0]; 7135 } 7136 else 7137 { 7138 return LetterToSound.PHONE + " " + this.phoneList[0] + "-" + this.phoneList[1]; 7139 } 7140 }, 7141 7142 /** 7143 * Compares this state to another state for debugging purposes. 7144 * 7145 * @param other 7146 * the other state to compare against 7147 * 7148 * @return <code>true</code> if the states are equivalent 7149 */ 7150 compare : function(other) 7151 { 7152 if (other instanceof FinalState) 7153 { 7154 var otherState = other; 7155 if (!phoneList) 7156 { 7157 return (otherState.phoneList == null); 7158 } 7159 else 7160 { 7161 for (var i = 0; i < phoneList.length; i++) 7162 { 7163 if (!phoneList[i].equals(otherState.phoneList[i])) 7164 { 7165 return false; 7166 } 7167 } 7168 return true; 7169 } 7170 } 7171 return false; 7172 }, 7173 7174 /** 7175 * Writes this state to the given output stream. 7176 * 7177 * @param dos 7178 * the data output stream 7179 * 7180 * @throws IOException 7181 * if an error occurs 7182 7183 public void writeBinary : function(DataOutputStream dos) throws IOException 7184 { 7185 dos.writeInt(TYPE); 7186 if (phoneList == null) 7187 { 7188 dos.writeInt(0); 7189 } else 7190 { 7191 dos.writeInt(phoneList.length); 7192 for (var i = 0; i < phoneList.length; i++) 7193 { 7194 dos.writeInt(phonemeTable.indexOf(phoneList[i])); 7195 } 7196 } 7197 } */ 7198 7199 /** 7200 * Loads a FinalState object from the given input stream 7201 * 7202 * @param dis 7203 * the data input stream 7204 * 7205 * @return a newly constructed final state 7206 * 7207 * @throws IOException 7208 * if an error occurs 7209 7210 public static State loadBinary : function(DataInputStream dis) throws IOException 7211 { 7212 String[] phoneList; 7213 var phoneListLength = dis.readInt(); 7214 7215 if (phoneListLength == 0) 7216 { 7217 phoneList = null; 7218 } else 7219 { 7220 phoneList = new String[phoneListLength]; 7221 } 7222 for (var i = 0; i < phoneListLength; i++) 7223 { 7224 var index = dis.readInt(); 7225 phoneList[i] = (String) phonemeTable.get(index); 7226 } 7227 return new FinalState(phoneList); 7228 } */ 7229 } 7230 7231 ///////////////////////////////////////////////////////////////////////// 7232 //StringTokenizer 7233 ///////////////////////////////////////////////////////////////////////// 7234 7235 var StringTokenizer = makeClass(); 7236 7237 StringTokenizer.prototype = { 7238 7239 initialize : function(str, delim) { 7240 7241 this.idx = 0; 7242 this.text = str; 7243 this.delim = delim || " "; 7244 this.tokens = str.split(delim); 7245 }, 7246 7247 nextToken : function() { 7248 7249 return (this.idx < this.tokens.length) ? this.tokens[this.idx++] : null; 7250 } 7251 } 7252 7253 ////////////////////////// PRIVATE CLASSES /////////////////////////////// 7254 7255 7256 // /////////////////////////////////////////////////////////////////////// 7257 // RiText_Canvas 2D-Renderer 7258 // /////////////////////////////////////////////////////////////////////// 7259 7260 /** 7261 * @name RiText_Canvas 7262 * @class 7263 * @private 7264 */ 7265 var RiText_Canvas = makeClass(); 7266 7267 RiText_Canvas.prototype = { 7268 7269 initialize : function(ctx) { 7270 this.ctx = ctx; 7271 }, 7272 7273 _getGraphics : function() { 7274 return this.ctx; 7275 }, 7276 7277 _pushState : function() { 7278 this.ctx.save(); 7279 return this; 7280 }, 7281 7282 _popState : function() { 7283 this.ctx.restore(); 7284 return this; 7285 }, 7286 7287 _background : function(r,g,b,a) { 7288 this._fill(r,g,b,a); 7289 this.ctx.fillRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height); 7290 }, 7291 7292 _scale : function(sx, sy) { 7293 this.ctx.scale(sx, sy, 1); 7294 }, 7295 7296 _translate : function(tx, ty) { 7297 this.ctx.translate(tx, ty, 0); 7298 }, 7299 7300 _rotate : function(zRot) { 7301 this.ctx.rotate(0,0,zRot); 7302 }, 7303 7304 _line : function(x1,y1,x2,y2,lw) { 7305 7306 7307 lw = lw || 1; // canvas hack for crisp lines 7308 x1 = Math.round(x1), x2 = Math.round(x2); 7309 y1 = Math.round(y1), y2 = Math.round(y2); 7310 7311 //log('line: ('+(x1)+","+(y1)+","+(x2)+","+(y2)+")"); 7312 7313 this.ctx.save(); 7314 7315 if (x1 === x2) { 7316 if (y1 > y2) { 7317 var swap = y1; 7318 y1 = y2; 7319 y2 = swap; 7320 } 7321 y2++; 7322 if (lw % 2 === 1) 7323 this.ctx.translate(0.5, 0); 7324 } 7325 else if (y1 === y2) { 7326 if (x1 > x2) { 7327 var swap = x1; 7328 x1 = x2; 7329 x2 = swap; 7330 } 7331 x2++; 7332 if (lw % 2 === 1) 7333 this.ctx.translate(0, 0.5); 7334 } 7335 7336 7337 this.ctx.beginPath(); 7338 this.ctx.moveTo(x1 || 0, y1 || 0); 7339 this.ctx.lineTo(x2 || 0, y2 || 0); 7340 this.ctx.lineWidth = lw; 7341 this.ctx.stroke(); 7342 7343 this.ctx.restore(); 7344 }, 7345 7346 _rect : function(x,y,w,h) { 7347 7348 this._line(x,y,x+w,y); 7349 this._line(x,y+h,x+w,y+h); 7350 this._line(x,y,x,y+h); 7351 this._line(x+w,y,x+w,y+h) 7352 7353 // TODO: add test with filled bounding boxes and check 7354 this.ctx.fillRect(x+1,y+1,w-1,h-1); // [hack] 7355 }, 7356 7357 _size : function(w, h, renderer) { 7358 7359 7360 this.ctx.canvas.width = w; 7361 this.ctx.canvas.height = h; 7362 if (renderer) console.warn("Renderer arg ignored"); 7363 }, 7364 7365 _createFont : function(fontName, fontSize, fontLeading) { 7366 7367 var font = { 7368 name: fontName, 7369 size: fontSize || RiText.defaults.font.size, 7370 leading: fontLeading || (fontSize * RiText.defaults.leadingFactor) 7371 }; 7372 return font; 7373 }, 7374 7375 _width : function() { 7376 7377 return this.ctx.canvas.width || 200; 7378 }, 7379 7380 _height : function() { 7381 7382 return this.ctx.canvas.height || 200; 7383 }, 7384 7385 _fill : function(r,g,b,a) { 7386 7387 this.ctx.fillStyle="rgba("+Math.round(r)+","+Math.round(g)+","+Math.round(b)+","+(a/255)+")"; 7388 }, 7389 7390 _stroke : function(r,g,b,a) { 7391 7392 this.ctx.strokeStyle = Type.is(r,S) ? r : "rgba("+Math.round(r) 7393 +","+Math.round(g)+","+Math.round(b)+","+(a/255)+")"; 7394 }, 7395 7396 _textAlign : function(align) { 7397 7398 switch (align) { 7399 case RiText.LEFT: 7400 this.ctx.textAlign = 'left'; 7401 break; 7402 case RiText.CENTER: 7403 this.ctx.textAlign = 'center'; 7404 break; 7405 case RiText.RIGHT: 7406 this.ctx.textAlign = 'right'; 7407 break; 7408 } 7409 }, 7410 7411 _type : function() { return "Canvas"; }, 7412 7413 // only applies the font to the context! 7414 _textFont : function(fontObj) { 7415 if (!Type.is(fontObj,O)) 7416 err("_textFont expects object, but got: "+fontObj); 7417 this.ctx.font = "normal "+fontObj.size+"px "+fontObj.name; 7418 }, 7419 7420 _textAscent : function(rt) { 7421 return this._getMetrics(rt).ascent; 7422 }, 7423 7424 _textDescent : function(rt) { 7425 return this._getMetrics(rt).descent; 7426 7427 }, 7428 7429 // should operate on the RiText itself (take rt as arg?) 7430 _text : function(str, x, y) { 7431 //log("text: "+str+","+x+","+y+","+this.ctx.textAlign); 7432 this.ctx.baseline = 'alphabetic'; 7433 this.ctx.fillText(str, x, y); 7434 //this.ctx.strokeText(str, x, y); 7435 }, 7436 7437 _textWidth : function(fontObj, str) { 7438 this.ctx.save(); 7439 this._textFont(fontObj); 7440 var tw = this.ctx.measureText(str).width; 7441 this.ctx.restore(); 7442 return tw; 7443 }, 7444 7445 _textHeight : function(rt) { 7446 return this._getBoundingBox(rt).height; 7447 }, 7448 7449 // hack to deal with lack of metrics in the canvas 7450 _getBoundingBox : function(rt) { 7451 7452 this.ctx.save(); 7453 this._textFont(rt._font); 7454 var w = this.ctx.measureText(rt.text()).width; 7455 var metrics = this._getMetrics(rt); 7456 //log('[CTX] ascent='+metrics.ascent+' descent='+metrics.descent+" h="+(metrics.ascent+metrics.descent)); 7457 this.ctx.restore(); 7458 return { x: 0, y: metrics.descent-1, width: w, height: metrics.ascent+metrics.descent+1 }; 7459 }, 7460 7461 _getMetrics : function(rt) {// does this need font.size? no 7462 7463 var fontObj = rt._font, str = rt.text(); 7464 7465 //log('_getMetrics:'+fontObj+","+str); 7466 var text = $('<span style="font-size: '+fontObj.size+'; font-family: '+fontObj.name+'">'+str+'</span>'); 7467 var block = $('<div style="display: inline-block; width: 1px; height: 0px;"></div>'); 7468 7469 var div = $('<div></div>'); 7470 div.append(text, block); 7471 7472 var body = $('body'); 7473 body.append(div); 7474 7475 try { 7476 var result = {}; 7477 7478 block.css({ verticalAlign: 'baseline' }); 7479 result.ascent = block.offset().top - text.offset().top + 1; 7480 7481 block.css({ verticalAlign: 'bottom' }); 7482 var height = block.offset().top - text.offset().top; 7483 7484 result.descent = (height - result.ascent); 7485 result.ascent -= result.descent; 7486 7487 } finally { 7488 div.remove(); 7489 } 7490 7491 return result; 7492 }, 7493 7494 toString : function() { 7495 return "RiText_"+this._type; 7496 } 7497 7498 } 7499 7500 // //////////////////////////////////////////////////////////// 7501 // TextNode 7502 // //////////////////////////////////////////////////////////// 7503 7504 /** 7505 * @name TextNode 7506 * @class 7507 * @private 7508 */ 7509 var TextNode = makeClass(); 7510 7511 TextNode.ignoreCase = true; 7512 7513 TextNode.prototype = { 7514 7515 initialize : function(parent, token) { 7516 7517 this.count = 0; 7518 this.children = {}; 7519 this.parent = parent; 7520 this.token = token; 7521 }, 7522 7523 selectChild : function(regex, probabalisticSelect) { 7524 7525 var ps = probabalisticSelect || true; 7526 return this.children ? this._select(this.childNodes(regex), ps) : null; 7527 }, 7528 7529 _select : function (arr, probabalisticSelect) { 7530 7531 if (!arr) throw TypeError("bad arg to '_select()'"); 7532 7533 probabalisticSelect = probabalisticSelect || false; 7534 7535 return (probabalisticSelect ? this._probabalisticSelect(arr) 7536 : arr[Math.floor((Math.random()*arr.length))]); 7537 }, 7538 7539 _probabalisticSelect : function(arr) { 7540 7541 if (!arr) throw TypeError("bad arg to '_probabalisticSelect()'"); 7542 7543 //L("RiTa.probabalisticSelect("+c+", size="+c.size()+")"); 7544 if (!arr.length) return null; 7545 if (arr.length == 1) return arr[0]; 7546 7547 // select from multiple options based on frequency 7548 var pTotal = 0, selector = Math.random(); 7549 for ( var i = 0; i < arr.length; i++) { 7550 7551 pTotal += arr[i].probability(); 7552 if (selector < pTotal) 7553 return arr[i]; 7554 } 7555 err("Invalid State in RiTa.probabalisticSelect()"); 7556 }, 7557 7558 addChild : function(newToken, initialCount) { 7559 7560 initialCount = initialCount || 1; 7561 7562 var key = this._key(newToken), node = this.children[key]; 7563 7564 // add first instance of this token 7565 if (!node) { 7566 node = new TextNode(this, newToken); 7567 node.count = initialCount; 7568 this.children[key] = node; 7569 } 7570 else { 7571 node.count++; 7572 } 7573 7574 return node; 7575 }, 7576 7577 asTree : function(sort) { 7578 7579 var s = this.token+" "; 7580 if (!this.isRoot()) 7581 s+= "("+this.count+")->"; 7582 s += "{"; 7583 if (!this.isLeaf()) 7584 return this.childrenToString(this, s, 1, sort); 7585 return s + "}"; 7586 }, 7587 7588 isRoot : function() { 7589 7590 return isNull(this.parent); 7591 }, 7592 7593 isLeaf : function() { 7594 7595 return this.childCount() == 0; 7596 }, 7597 7598 probability : function() { 7599 7600 //log('probability: '+ this.count+'/'+this.siblingCount()); 7601 return this.count/this.siblingCount(); 7602 }, 7603 7604 7605 childNodes : function(regex) { 7606 7607 if (!this.children) return []; 7608 7609 regex = Type.is(regex,S) ? new RegExp(regex) : regex; 7610 7611 var res = []; 7612 for (var k in this.children) { 7613 var node = this.children[k]; 7614 if (!regex || (node && node.token && node.token.search(regex)>-1)) { 7615 res.push(node); 7616 } 7617 } 7618 7619 return res; 7620 }, 7621 7622 /** 7623 * Returns the number of siblings for this node (Note: is case-sensitive) 7624 */ 7625 siblingCount : function() { 7626 7627 if (this.isRoot()) err("Illegal siblingCount on ROOT!"); 7628 7629 if (!this.parent) err("Null parent for: "+this.token); 7630 7631 return this.parent.childCount(); 7632 }, 7633 7634 /** 7635 * Returns the number of unique children (Note: is case-sensitive) 7636 */ 7637 uniqueCount : function() { 7638 7639 var sum = 0; 7640 for (var k in this.children) sum++; 7641 return sum; 7642 }, 7643 7644 /** 7645 * Returns the number of children for this node (Note: is case-sensitive) 7646 */ 7647 childCount : function() { 7648 7649 //return this.childNodes().length; 7650 7651 if (!this.children) return 0; 7652 7653 var sum = 0; 7654 for (var k in this.children) { 7655 if (k && this.children[k]) 7656 sum += this.children[k].count; 7657 } 7658 7659 return sum; 7660 }, 7661 7662 7663 /* 7664 * takes node or string, returns node 7665 */ 7666 lookup : function(obj) { 7667 7668 if (!obj) return null; 7669 7670 obj = (typeof obj != S && obj.token) ? obj.token : obj; 7671 7672 //log(this.token+".lookup("+this._key(obj)+")"); 7673 7674 return obj ? this.children[this._key(obj)] : null; 7675 }, 7676 7677 7678 _key : function(str) { 7679 7680 return (str && TextNode.ignoreCase) ? str.toLowerCase() : str; 7681 }, 7682 7683 childrenToString : function(textNode, str, depth, sort) { 7684 7685 var mn = textNode, l = [], node = null, indent = "\n"; 7686 7687 sort = sort || false; 7688 7689 for (var k in textNode.children) { 7690 l.push(textNode.children[k]); 7691 } 7692 7693 if (!l.length) return str; 7694 7695 if (sort) l.sort(); 7696 7697 for (var j = 0; j < depth; j++) 7698 indent += " "; 7699 7700 for (var i = 0; i < l.length; i++) { 7701 7702 node = l[i]; 7703 7704 if (!node) break; 7705 7706 var tok = node.token; 7707 if (tok) { 7708 (tok == "\n") && (tok = "\\n"); 7709 (tok == "\r") && (tok = "\\r"); 7710 (tok == "\t") && (tok = "\\t"); 7711 (tok == "\r\n") && (tok = "\\r\\n"); 7712 } 7713 7714 str += indent +"'"+tok+"'"; 7715 7716 if (!node.count) 7717 err("ILLEGAL FREQ: "+node.count+" -> "+mn.token+","+node.token); 7718 7719 if (!node.isRoot()) 7720 str += " ["+node.count + ",p=" +//formatter.format 7721 (node.probability().toFixed(3)) + "]->{"; 7722 7723 if (node.children) 7724 str = this.childrenToString(node, str, depth+1, sort); 7725 else 7726 str += "}"; 7727 } 7728 7729 indent = "\n"; 7730 for (var j = 0; j < depth-1; j++) 7731 indent += " "; 7732 7733 return str + indent + "}"; 7734 }, 7735 7736 toString : function() { 7737 return '[ '+this.token+" ("+this.count+'/'+this.probability().toFixed(3)+'%)]'; 7738 } 7739 } 7740 7741 // //////////////////////////////////////////////////////////// 7742 // Conjugator 7743 // //////////////////////////////////////////////////////////// 7744 7745 7746 /** 7747 * @name Conjugator 7748 * @class 7749 * @private 7750 */ 7751 var Conjugator = makeClass(); 7752 7753 Conjugator.prototype = { 7754 7755 initialize : function() { 7756 7757 // TODO: get rid of these and make static method ? 7758 7759 this.perfect = this.progressive = this.passive = this.interrogative = false; 7760 this.tense = RiTa.PRESENT_TENSE; 7761 this.person = RiTa.FIRST_PERSON; 7762 this.number = RiTa.SINGULAR; 7763 this.form = RiTa.NORMAL; 7764 this.head = ""; 7765 7766 }, 7767 7768 // Conjugates the verb based on the current state of the conjugator. 7769 // !@# Removed (did not translate) incomplete/non-working java 7770 // implementation of modals handling. 7771 // !@# TODO: add handling of past tense modals. 7772 conjugate : function(verb, args) { 7773 7774 var s = E, actualModal = null, conjs = [], frontVG = verb, verbForm; 7775 7776 if (!verb || !verb.length) return E; 7777 7778 if (!args) return verb; 7779 7780 // ------------------ handle arguments ------------------ 7781 7782 args.number && (this.number = args.number); 7783 7784 args.person && (this.person = args.person); 7785 7786 args.tense && (this.tense = args.tense); 7787 7788 args.form && (this.form = args.form); 7789 7790 args.passive && (this.person = args.passive); 7791 7792 args.progressive && (this.progressive = args.progressive); 7793 7794 args.perfect && (this.perfect = args.perfect); 7795 7796 // ----------------------- start --------------------------- 7797 if (this.form == RiTa.INFINITIVE) { 7798 actualModal = "to"; 7799 } 7800 7801 if (this.tense == RiTa.FUTURE_TENSE) { 7802 actualModal = "will"; 7803 } 7804 7805 if (this.passive) { 7806 this.conjs.push(this.getPastParticiple(this.frontVG)); 7807 this.frontVG = "be"; // Conjugate this ? 7808 } 7809 7810 if (this.progressive) { 7811 conjs.push(this.getPresentParticiple(frontVG)); 7812 frontVG = "be"; // Conjugate this ? 7813 } 7814 7815 if (this.perfect) { 7816 conjs.push(this.getPastParticiple(frontVG)); 7817 frontVG = "have"; 7818 } 7819 7820 if (actualModal) { 7821 // log("push: "+frontVG); 7822 conjs.push(frontVG); 7823 frontVG = null; 7824 } 7825 7826 // Now inflect frontVG (if it exists) and push it on restVG 7827 if (frontVG) { 7828 7829 if (this.form === RiTa.GERUND) { // gerund - use ING form 7830 7831 var pp = this.getPresentParticiple(frontVG); 7832 7833 // !@# not yet implemented! ??? WHAT? 7834 conjs.push(pp); 7835 7836 } 7837 else if (this.interrogative && !(verb == "be") && conjs.length < 1) { 7838 7839 conjs.push(frontVG); 7840 7841 } 7842 else { 7843 7844 verbForm = this.getVerbForm(frontVG, this.tense, this.person, this.number); 7845 conjs.push(verbForm); 7846 } 7847 } 7848 7849 // add modal, and we're done 7850 actualModal && conjs.push(actualModal); 7851 7852 var s = E; 7853 for ( var i = 0; i < conjs.length; i++) { 7854 7855 s = conjs[i] + " " + s; 7856 } 7857 7858 // !@# test this 7859 endsWith(s, "peted") && err("Unexpected output: " + this.toString()); 7860 7861 return trim(s); 7862 }, 7863 7864 checkRules : function(ruleSet, verb) { 7865 7866 var res, name = ruleSet.name, rules = ruleSet.rules, defRule = ruleSet.defaultRule || null; 7867 7868 if (!rules) err("no rule: "+ruleSet.name+' of '+verb); 7869 7870 if (inArray(MODALS, verb)) return verb; 7871 7872 for ( var i = 0; i < rules.length; i++) { 7873 7874 //log("checkRules2("+name+").fire("+i+")="+rules[i].regex); 7875 if (rules[i].applies(verb)) { 7876 7877 var got = rules[i].fire(verb); 7878 7879 //log("HIT("+name+").fire("+i+")="+rules[i].regex+"_returns: "+got); 7880 return got; 7881 } 7882 } 7883 7884 if (ruleSet.doubling || inArray(VERB_CONS_DOUBLING, verb)) { 7885 7886 verb = this.doubleFinalConsonant(verb); 7887 } 7888 7889 res = defRule.fire(verb); 7890 7891 // log("checkRules3("+name+").returns: "+res); 7892 return res; 7893 }, 7894 7895 doubleFinalConsonant : function(word) { 7896 var letter = word.charAt(word.length - 1); 7897 return word + letter; 7898 }, 7899 7900 getPast : function(verb, pers, numb) { 7901 7902 if (verb.toLowerCase() == "be") { 7903 7904 switch (numb) { 7905 7906 case RiTa.SINGULAR: 7907 7908 switch (pers) { 7909 7910 case RiTa.FIRST_PERSON: 7911 break; 7912 7913 case RiTa.THIRD_PERSON: 7914 return "was"; 7915 7916 case RiTa.SECOND_PERSON: 7917 return "were"; 7918 7919 } 7920 break; 7921 7922 case RiTa.PLURAL: 7923 7924 return "were"; 7925 } 7926 } 7927 7928 var got = this.checkRules(PAST_TENSE_RULESET, verb); 7929 7930 //log("getPast(" + verb + ").returns: " + got); 7931 7932 return got; 7933 }, 7934 7935 getPresent : function(verb, person, number) { 7936 7937 person = person || this.person; 7938 number = number || this.number; 7939 7940 if ((person == RiTa.THIRD_PERSON) && (number == RiTa.SINGULAR)) { 7941 7942 return this.checkRules(PRESENT_TENSE_RULESET, verb); 7943 } 7944 else if (verb == "be") { 7945 7946 if (number == RiTa.SINGULAR) { 7947 7948 switch (person) { 7949 7950 case RiTa.FIRST_PERSON: 7951 return "am"; 7952 7953 case RiTa.SECOND_PERSON: 7954 return "are"; 7955 7956 case RiTa.THIRD_PERSON: 7957 return "is"; 7958 7959 // default: ??? 7960 } 7961 7962 } else { 7963 return "are"; 7964 } 7965 } 7966 return verb; 7967 }, 7968 7969 getPresentParticiple : function(verb) { 7970 7971 return strOk(verb) ? this.checkRules(PRESENT_PARTICIPLE_RULESET, verb) : E; 7972 }, 7973 7974 getPastParticiple : function(verb) { 7975 7976 return strOk(verb) ? this.checkRules(PAST_PARTICIPLE_RULESET, verb) : E; 7977 }, 7978 7979 getVerbForm : function(verb, tense, person, number) { 7980 7981 switch (tense) { 7982 7983 case RiTa.PRESENT_TENSE: 7984 return this.getPresent(verb, person, number); 7985 7986 case RiTa.PAST_TENSE: 7987 return this.getPast(verb, person, number); 7988 7989 default: 7990 return verb; 7991 } 7992 }, 7993 7994 // Returns a String representing the current person from one of 7995 // (first, second, third) 7996 getPerson : function() { 7997 return CONJUGATION_NAMES[this.person]; 7998 }, 7999 8000 // Returns a String representing the current number from one of 8001 // (singular, plural) 8002 getNumber : function() { 8003 return CONJUGATION_NAMES[this.number]; 8004 }, 8005 8006 // Returns a String representing the current tense from one of 8007 // (past, present, future) 8008 getTense : function() { 8009 return CONJUGATION_NAMES[this.tense]; 8010 }, 8011 8012 // Returns the current verb 8013 getVerb : function() { 8014 return this.head; 8015 }, 8016 8017 // Returns whether the conjugation will use passive tense 8018 isPassive : function() { 8019 return this.passive; 8020 }, 8021 // Returns whether the conjugation will use perfect tense 8022 isPerfect : function() { 8023 return this.perfect; 8024 }, 8025 // Returns whether the conjugation will use progressive tense 8026 isProgressive : function() { 8027 return this.progressive; 8028 }, 8029 8030 // Sets the person for the conjugation, from one of the 8031 // constants: [RiTa.FIRST_PERSON, RiTa.SECOND_PERSON, RiTa.THIRD_PERSON] 8032 setPerson : function(personConstant) { 8033 this.person = personConstant; 8034 }, 8035 8036 // Sets the number for the conjugation, from one of the 8037 // constants: [RiTa.SINGULAR, RiTa.PLURAL] 8038 setNumber : function(numberConstant) { 8039 this.number = numberConstant; 8040 }, 8041 8042 // Sets the tense for the conjugation, from one of the 8043 // constants: [RiTa.PAST_TENSE, RiTa.PRESENT_TENSE, RiTa.FUTURE_TENSE] 8044 setTense : function(tenseConstant) { 8045 this.tense = tenseConstant; 8046 }, 8047 8048 // Sets the verb to be conjugated 8049 setVerb : function(verb) { 8050 var v = this.head = verb.toLowerCase(); 8051 if (v === "am" || v === "are" || v === "is" || v === "was" || v === "were") { 8052 this.head = "be"; 8053 } 8054 }, 8055 8056 // Sets whether the conjugation should use passive tense 8057 setPassive : function(bool) { 8058 this.passive = bool; 8059 }, 8060 8061 // Sets whether the conjugation should use perfect tense 8062 setPerfect : function(bool) { 8063 this.perfect = bool; 8064 }, 8065 8066 // Sets whether the conjugation should use progressive tense 8067 setProgressive : function(bool) { 8068 this.progressive = bool; 8069 }, 8070 8071 // A human-readable representation of state for logging 8072 toString : function() { 8073 return " ---------------------\n" + " Passive = " + this.isPassive() + "\n" 8074 + " Perfect = " + this.isPerfect() + "\n" + " Progressive = " 8075 + this.isProgressive() + "\n" + " ---------------------\n" + " Number = " 8076 + this.getNumber() + "\n" + " Person = " + this.getPerson() + "\n" 8077 + " Tense = " + this.getTense() + "\n" + " ---------------------\n"; 8078 }, 8079 8080 // Returns all possible conjugations of the specified verb 8081 // (contains duplicates) (TODO: remove? not sure about this one) 8082 conjugateAll : function(verb) { 8083 8084 var results = [], i, j, k, l, m, n; 8085 8086 this.setVerb(verb); 8087 8088 for (i = 0; i < TENSES.length; i++) { 8089 this.setTense(TENSES[i]); 8090 for (j = 0; j < NUMBERS.length; j++) { 8091 this.setNumber(NUMBERS[j]); 8092 for (k = 0; k < PERSONS.length; k++) { 8093 this.setPerson(PERSONS[k]); 8094 for (l = 0; l < 2; l++) { 8095 this.setPassive(l == 0 ? true : false); 8096 for (m = 0; m < 2; m++) { 8097 this.setProgressive(m == 0 ? true : false); 8098 for (n = 0; n < 2; n++) { 8099 this.setPerfect(n == 0 ? true : false); 8100 results.push(this.conjugate(verb)); 8101 } 8102 } 8103 } 8104 } 8105 } 8106 } 8107 // log("all="+results.length); 8108 return results; 8109 } 8110 } 8111 8112 // //////////////////////////////////////////////////////////// 8113 // PosTagger (singleton) 8114 // //////////////////////////////////////////////////////////// 8115 8116 var PosTagger = { 8117 8118 // Penn Pos types ------------------------------ 8119 UNKNOWN : [ "???", "UNKNOWN" ], 8120 N : [ "N", "NOUN_KEY" ], 8121 V : [ "V", "VERB_KEY" ], 8122 R : [ "R", "ADVERB_KEY" ], 8123 A : [ "A", "ADJECTIVE_KEY" ], 8124 CC : [ "CC", "Coordinating conjunction" ], 8125 CD : [ "CD", "Cardinal number" ], 8126 DT : [ "DT", "Determiner" ], 8127 EX : [ "EX", "Existential there" ], 8128 FW : [ "FW", "Foreign word" ], 8129 IN : [ "IN", "Preposition or subordinating conjunction" ], 8130 JJ : [ "JJ", "Adjective" ], 8131 JJR : [ "JJR", "Adjective, comparative" ], 8132 JJS : [ "JJS", "Adjective, superlative" ], 8133 LS : [ "LS", "List item marker" ], 8134 MD : [ "MD", "Modal" ], 8135 NN : [ "NN", "Noun, singular or mass" ], 8136 NNS : [ "NNS", "Noun, plural" ], 8137 NNP : [ "NNP", "Proper noun, singular" ], 8138 NNPS : [ "NNPS", "Proper noun, plural" ], 8139 PDT : [ "PDT", "Predeterminer" ], 8140 POS : [ "POS", "Possessive ending" ], 8141 PRP : [ "PRP", "Personal pronoun" ], 8142 PRP$ : [ "PRP$", "Possessive pronoun (prolog version PRP-S)" ], 8143 RB : [ "RB", "Adverb" ], 8144 RBR : [ "RBR", "Adverb, comparative" ], 8145 RBS : [ "RBS", "Adverb, superlative" ], 8146 RP : [ "RP", "Particle" ], 8147 SYM : [ "SYM", "Symbol" ], 8148 TO : [ "TO", "to" ], 8149 UH : [ "UH", "Interjection" ], 8150 VB : [ "VB", "Verb, base form" ], 8151 VBD : [ "VBD", "Verb, past tense" ], 8152 VBG : [ "VBG", "Verb, gerund or present participle" ], 8153 VBN : [ "VBN", "Verb, past participle" ], 8154 VBP : [ "VBP", "Verb, non-3rd person singular present" ], 8155 VBZ : [ "VBZ", "Verb, 3rd person singular present" ], 8156 WDT : [ "WDT", "Wh-determiner" ], 8157 WP : [ "WP", "Wh-pronoun" ], 8158 WP$ : [ "WP$", "Possessive wh-pronoun (prolog version WP-S)" ], 8159 WRB : [ "WRB", "Wh-adverb" ], 8160 8161 TAGS : [ "CC", "CD", "DT", "EX", "FW", "IN", "JJ", 8162 "JJR", "JJS", "LS", "MD", "NN", "NNS", "NNP", 8163 "NNPS", "PDT", "POS", "PRP", "PRP$", "RB", 8164 "RBR", "RBS", "RP", "SYM", "TO", 8165 "UH", "VB", "VBD", "VBG", "VBN", "VBP", "VBZ", "WDT", 8166 "WP", "WP$", "WRB", "UNKNOWN" ], 8167 NOUNS : [ "NN", "NNS", "NNP", "NNPS" ], 8168 VERBS : [ "VB", "VBD", "VBG", "VBN", "VBP", "VBZ" ], 8169 ADJ : [ "JJ", "JJR", "JJS" ], 8170 ADV : [ "RB", "RBR", "RBS", "RP" ], 8171 8172 8173 isVerb : function(tag) { 8174 //return inArray(this.VERBS, tag); 8175 return inArray(this.VERBS, tag.toUpperCase()); 8176 }, 8177 8178 isNoun : function(tag) { 8179 //return inArray(this.NOUNS, tag); 8180 return inArray(this.NOUNS, tag.toUpperCase()); 8181 }, 8182 8183 isAdverb : function(tag) { 8184 //return inArray(this.ADV, tag); 8185 return inArray(this.ADV, tag.toUpperCase()); 8186 }, 8187 8188 isAdj : function(tag) { 8189 //return inArray(this.ADJ, tag); 8190 return inArray(this.ADJ, tag.toUpperCase()); 8191 }, 8192 8193 isTag : function(tag) { 8194 return inArray(this.TAGS, tag); 8195 }, 8196 8197 hasTag : function(choices, tag) { 8198 var choiceStr = choices.join(); 8199 return (choiceStr.indexOf(tag) > -1); 8200 }, 8201 8202 /** 8203 * Returns an array of parts-of-speech from the Penn tagset, 8204 * each corresponding to one word of input 8205 */ 8206 tag : function(words) { 8207 8208 8209 var result = [], choices = [], lex = RiLexicon._getInstance(); 8210 8211 words = Type.is(words,A) ? words : [ words ]; 8212 8213 for (var i = 0, l = words.length; i < l; i++) { 8214 8215 if (!strOk(words[i])) continue 8216 8217 var data = lex._getPosArr(words[i]); 8218 8219 if (isNull(data) || data.length == 0) { 8220 8221 if (words[i].length == 1) { 8222 8223 result.push(isNum(words[i].charAt(0)) ? "cd" : words[i]); 8224 } 8225 else { 8226 8227 result.push("nn"); 8228 } 8229 choices[i] = null; // TODO: OK? 8230 } 8231 else { 8232 result.push(data[0]); 8233 choices.push(data); 8234 } 8235 } 8236 8237 // Adjust pos according to transformation rules 8238 return this._applyContext(words, result, choices); 8239 8240 }, 8241 8242 8243 // Applies a customized subset of the Brill transformations 8244 _applyContext : function(words, result, choices) { 8245 8246 //log("_applyContext("+words+","+result+","+choices+")"); 8247 8248 // Shortcuts for brevity/readability 8249 var sW = startsWith, eW = endsWith, PRINT_CUSTOM_TAGS = true, PRINT = PRINT_CUSTOM_TAGS; 8250 8251 // Apply transformations 8252 for (var i = 0, l = words.length; i < l; i++) { 8253 8254 var firstLetter = words[i].charAt(0); 8255 8256 // transform 1: DT, {VBD | VBP | VB} --> DT, NN 8257 if (i > 0 && (result[i - 1] == "dt")) { 8258 if (sW(result[i], "vb")) { 8259 if (PRINT) { 8260 log("BrillPosTagger: changing verb to noun: " + words[i]); 8261 } 8262 result[i] = "nn"; 8263 } 8264 8265 // transform 1: DT, {RB | RBR | RBS} --> DT, {JJ | 8266 // JJR | JJS} 8267 else if (sW(result[i], "rb")) { 8268 if (PRINT) { 8269 log("BrillPosTagger: custom tagged '" + words[i] + "', " 8270 + result[i]); 8271 } 8272 result[i] = (result[i].length > 2) ? "jj" + result[i].charAt(2) : "jj"; 8273 if (PRINT) { 8274 log(" -> " + result[i]); 8275 } 8276 } 8277 } 8278 8279 // transform 2: convert a noun to a number (cd) if it is 8280 // all digits and/or a decimal "." 8281 if (sW(result[i], "n") && choices[i] == null) { 8282 if (isNum(words[i])) { 8283 result[i] = "cd"; 8284 } // mods: dch (add choice check above) <---- ? > 8285 } 8286 8287 // transform 3: convert a noun to a past participle if 8288 // words[i] ends with "ed" 8289 if (sW(result[i], "n") && eW(words[i], "ed")) { 8290 result[i] = "vbn"; 8291 } 8292 8293 // transform 4: convert any type to adverb if it ends in 8294 // "ly"; 8295 if (eW(words[i], "ly")) { 8296 result[i] = "rb"; 8297 } 8298 8299 // transform 5: convert a common noun (NN or NNS) to a 8300 // adjective if it ends with "al" 8301 if (sW(result[i], "nn") && eW(words[i], "al")) { 8302 result[i] = "jj"; 8303 } 8304 8305 // transform 6: convert a noun to a verb if the 8306 // preceeding word is "would" 8307 if (i > 0 && sW(result[i], "nn") && equalsIgnoreCase(words[i - 1], "would")) { 8308 result[i] = "vb"; 8309 } 8310 8311 // transform 7: if a word has been categorized as a 8312 // common noun and it ends 8313 // with "s", then set its type to plural common noun 8314 // (NNS) 8315 if ((result[i] == "nn") && eW(words[i], "s")) { 8316 result[i] = "nns"; 8317 } 8318 8319 // transform 8: convert a common noun to a present 8320 // participle verb (i.e., a gerund) 8321 if (sW(result[i], "nn") && eW(words[i], "ing")) { 8322 // fix here -- add check on choices for any verb: eg 8323 // 'morning' 8324 if (this.hasTag(choices[i], "vb")) { 8325 result[i] = "vbg"; 8326 } else if (PRINT) { 8327 log("[RiTa] BrillPosTagger tagged '" + words[i] + "' as " + result[i]); 8328 } 8329 } 8330 8331 // transform 9(dch): convert common nouns to proper 8332 // nouns when they start w' a capital and are not a 8333 // sentence start 8334 if (i > 0 && sW(result[i], "nn") && words[i].length > 1 8335 && (firstLetter == firstLetter.toUpperCase())) { 8336 result[i] = eW(result[i], "s") ? "nnps" : "nnp"; 8337 } 8338 8339 // transform 10(dch): convert plural nouns (which are 8340 // also 3sg-verbs) to 3sg-verbs when followed by adverb 8341 // (jumps, dances) 8342 if (i < result.length - 1 && result[i] == "nns" && sW(result[i + 1], "rb") 8343 && this.hasTag(choices[i], "vbz")) { 8344 result[i] = "vbz"; 8345 } 8346 } 8347 8348 return result; 8349 8350 }//.returns(A) 8351 8352 }// end PosTagger 8353 8354 /** 8355 * @name Stemmer 8356 * @class 8357 * @private 8358 */ 8359 var Stemmer = {}; 8360 8361 /** 8362 * Porter stemmer in Javascript: from https://github.com/kristopolous/Porter-Stemmer 8363 * Ported from Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14, 8364 * no. 3, pp 130-137, see also http:www.tartarus.org/~martin/PorterStemmer 8365 */ 8366 Stemmer.stem_Porter = (function() { 8367 8368 var step2list = { 8369 "ational" : "ate", 8370 "tional" : "tion", 8371 "enci" : "ence", 8372 "anci" : "ance", 8373 "izer" : "ize", 8374 "bli" : "ble", 8375 "alli" : "al", 8376 "entli" : "ent", 8377 "eli" : "e", 8378 "ousli" : "ous", 8379 "ization" : "ize", 8380 "ation" : "ate", 8381 "ator" : "ate", 8382 "alism" : "al", 8383 "iveness" : "ive", 8384 "fulness" : "ful", 8385 "ousness" : "ous", 8386 "aliti" : "al", 8387 "iviti" : "ive", 8388 "biliti" : "ble", 8389 "logi" : "log" 8390 }, 8391 8392 step3list = { 8393 "icate" : "ic", 8394 "ative" : "", 8395 "alize" : "al", 8396 "iciti" : "ic", 8397 "ical" : "ic", 8398 "ful" : "", 8399 "ness" : "" 8400 }, 8401 8402 c = "[^aeiou]", // consonant 8403 v = "[aeiouy]", // vowel 8404 C = c + "[^aeiouy]*", // consonant sequence 8405 V = v + "[aeiou]*", // vowel sequence 8406 8407 mgr0 = "^(" + C + ")?" + V + C, // [C]VC... is m>0 8408 meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$", // [C]VC[V] is m=1 8409 mgr1 = "^(" + C + ")?" + V + C + V + C, // [C]VCVC... is m>1 8410 s_v = "^(" + C + ")?" + v; // vowel in stem 8411 8412 return function (w) { 8413 var stem, 8414 suffix, 8415 firstch, 8416 re, 8417 re2, 8418 re3, 8419 re4, 8420 origword = w; 8421 8422 if (w.length < 3) { return w; } 8423 8424 firstch = w.substr(0,1); 8425 if (firstch == "y") { 8426 w = firstch.toUpperCase() + w.substr(1); 8427 } 8428 8429 // Step 1a 8430 re = /^(.+?)(ss|i)es$/; 8431 re2 = /^(.+?)([^s])s$/; 8432 8433 if (re.test(w)) { w = w.replace(re,"$1$2"); } 8434 else if (re2.test(w)) { w = w.replace(re2,"$1$2"); } 8435 8436 // Step 1b 8437 re = /^(.+?)eed$/; 8438 re2 = /^(.+?)(ed|ing)$/; 8439 if (re.test(w)) { 8440 var fp = re.exec(w); 8441 re = new RegExp(mgr0); 8442 if (re.test(fp[1])) { 8443 re = /.$/; 8444 w = w.replace(re,""); 8445 } 8446 } else if (re2.test(w)) { 8447 var fp = re2.exec(w); 8448 stem = fp[1]; 8449 re2 = new RegExp(s_v); 8450 if (re2.test(stem)) { 8451 w = stem; 8452 re2 = /(at|bl|iz)$/; 8453 re3 = new RegExp("([^aeiouylsz])\\1$"); 8454 re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); 8455 if (re2.test(w)) { w = w + "e"; } 8456 else if (re3.test(w)) { re = /.$/; w = w.replace(re,""); } 8457 else if (re4.test(w)) { w = w + "e"; } 8458 } 8459 } 8460 8461 // Step 1c 8462 re = /^(.+?)y$/; 8463 if (re.test(w)) { 8464 var fp = re.exec(w); 8465 stem = fp[1]; 8466 re = new RegExp(s_v); 8467 if (re.test(stem)) { w = stem + "i"; } 8468 } 8469 8470 // Step 2 8471 re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; 8472 if (re.test(w)) { 8473 var fp = re.exec(w); 8474 stem = fp[1]; 8475 suffix = fp[2]; 8476 re = new RegExp(mgr0); 8477 if (re.test(stem)) { 8478 w = stem + step2list[suffix]; 8479 } 8480 } 8481 8482 // Step 3 8483 re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; 8484 if (re.test(w)) { 8485 var fp = re.exec(w); 8486 stem = fp[1]; 8487 suffix = fp[2]; 8488 re = new RegExp(mgr0); 8489 if (re.test(stem)) { 8490 w = stem + step3list[suffix]; 8491 } 8492 } 8493 8494 // Step 4 8495 re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; 8496 re2 = /^(.+?)(s|t)(ion)$/; 8497 if (re.test(w)) { 8498 var fp = re.exec(w); 8499 stem = fp[1]; 8500 re = new RegExp(mgr1); 8501 if (re.test(stem)) { 8502 w = stem; 8503 } 8504 } else if (re2.test(w)) { 8505 var fp = re2.exec(w); 8506 stem = fp[1] + fp[2]; 8507 re2 = new RegExp(mgr1); 8508 if (re2.test(stem)) { 8509 w = stem; 8510 } 8511 } 8512 8513 // Step 5 8514 re = /^(.+?)e$/; 8515 if (re.test(w)) { 8516 var fp = re.exec(w); 8517 stem = fp[1]; 8518 re = new RegExp(mgr1); 8519 re2 = new RegExp(meq1); 8520 re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); 8521 if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) { 8522 w = stem; 8523 } 8524 } 8525 8526 re = /ll$/; 8527 re2 = new RegExp(mgr1); 8528 if (re.test(w) && re2.test(w)) { 8529 re = /.$/; 8530 w = w.replace(re,""); 8531 } 8532 8533 // and turn initial Y back to y 8534 8535 if (firstch == "y") { 8536 w = firstch.toLowerCase() + w.substr(1); 8537 } 8538 8539 return w; 8540 } 8541 })(); 8542 8543 Stemmer.stem_Lancaster = (function() { 8544 8545 function accept(token) { 8546 8547 return (token.match(/^[aeiou]/)) ? 8548 (token.length > 1) : (token.length > 2 && token.match(/[aeiouy]/)); 8549 } 8550 8551 // take a token, look up the applicable rule and do the stem 8552 function applyRules(token, intact) { 8553 8554 var section = token.substr( - 1), rules = ruleTable[section]; 8555 8556 if (rules) { 8557 8558 for (var i = 0; i < rules.length; i++) { 8559 8560 // only apply intact rules to intact tokens 8561 if ((intact || !rules[i].intact) && token.substr(0 - rules[i].pattern.length) == rules[i].pattern) { 8562 8563 // hack off only as much as the rule indicates 8564 var result = token.substr(0, token.length - rules[i].size); 8565 8566 // if the rules wants us to apply an appendage do so 8567 if (rules[i].appendage) 8568 result += rules[i].appendage; 8569 8570 if (accept(result)) { 8571 token = result; 8572 8573 // see what the rules wants to do next 8574 if (rules[i].continuation) { 8575 // this rule thinks there still might be stem left. keep at it. 8576 // since we've applied a change we'll pass false in for intact 8577 return applyRules(result, false); 8578 8579 } else { 8580 8581 // the rule thinks we're done stemming. drop out. 8582 return result; 8583 } 8584 } 8585 } 8586 } 8587 } 8588 else 8589 err('No rules found!'); 8590 8591 return token; 8592 } 8593 8594 var ruleTable = { 8595 "a": [ 8596 { 8597 "continuation": false, 8598 "intact": true, 8599 "pattern": "ia", 8600 "size": "2" 8601 }, 8602 { 8603 "continuation": false, 8604 "intact": true, 8605 "pattern": "a", 8606 "size": "1" 8607 } 8608 ], 8609 "b": [ 8610 { 8611 "continuation": false, 8612 "intact": false, 8613 "pattern": "bb", 8614 "size": "1" 8615 } 8616 ], 8617 "c": [ 8618 { 8619 "appendage": "s", 8620 "continuation": false, 8621 "intact": false, 8622 "pattern": "ytic", 8623 "size": "3" 8624 }, 8625 { 8626 "continuation": true, 8627 "intact": false, 8628 "pattern": "ic", 8629 "size": "2" 8630 }, 8631 { 8632 "appendage": "t", 8633 "continuation": true, 8634 "intact": false, 8635 "pattern": "nc", 8636 "size": "1" 8637 } 8638 ], 8639 "d": [ 8640 { 8641 "continuation": false, 8642 "intact": false, 8643 "pattern": "dd", 8644 "size": "1" 8645 }, 8646 { 8647 "appendage": "y", 8648 "continuation": true, 8649 "intact": false, 8650 "pattern": "ied", 8651 "size": "3" 8652 }, 8653 { 8654 "appendage": "s", 8655 "continuation": false, 8656 "intact": false, 8657 "pattern": "ceed", 8658 "size": "2" 8659 }, 8660 { 8661 "continuation": false, 8662 "intact": false, 8663 "pattern": "eed", 8664 "size": "1" 8665 }, 8666 { 8667 "continuation": true, 8668 "intact": false, 8669 "pattern": "ed", 8670 "size": "2" 8671 }, 8672 { 8673 "continuation": true, 8674 "intact": false, 8675 "pattern": "hood", 8676 "size": "4" 8677 } 8678 ], 8679 "e": [ 8680 { 8681 "continuation": true, 8682 "intact": false, 8683 "pattern": "e", 8684 "size": "1" 8685 } 8686 ], 8687 "f": [ 8688 { 8689 "appendage": "v", 8690 "continuation": false, 8691 "intact": false, 8692 "pattern": "lief", 8693 "size": "1" 8694 }, 8695 { 8696 "continuation": true, 8697 "intact": false, 8698 "pattern": "if", 8699 "size": "2" 8700 } 8701 ], 8702 "g": [ 8703 { 8704 "continuation": true, 8705 "intact": false, 8706 "pattern": "ing", 8707 "size": "3" 8708 }, 8709 { 8710 "appendage": "y", 8711 "continuation": false, 8712 "intact": false, 8713 "pattern": "iag", 8714 "size": "3" 8715 }, 8716 { 8717 "continuation": true, 8718 "intact": false, 8719 "pattern": "ag", 8720 "size": "2" 8721 }, 8722 { 8723 "continuation": false, 8724 "intact": false, 8725 "pattern": "gg", 8726 "size": "1" 8727 } 8728 ], 8729 "h": [ 8730 { 8731 "continuation": false, 8732 "intact": true, 8733 "pattern": "th", 8734 "size": "2" 8735 }, 8736 { 8737 "appendage": "c", 8738 "continuation": false, 8739 "intact": false, 8740 "pattern": "guish", 8741 "size": "5" 8742 }, 8743 { 8744 "continuation": true, 8745 "intact": false, 8746 "pattern": "ish", 8747 "size": "3" 8748 } 8749 ], 8750 "i": [ 8751 { 8752 "continuation": false, 8753 "intact": true, 8754 "pattern": "i", 8755 "size": "1" 8756 }, 8757 { 8758 "appendage": "y", 8759 "continuation": true, 8760 "intact": false, 8761 "pattern": "i", 8762 "size": "1" 8763 } 8764 ], 8765 "j": [ 8766 { 8767 "appendage": "d", 8768 "continuation": false, 8769 "intact": false, 8770 "pattern": "ij", 8771 "size": "1" 8772 }, 8773 { 8774 "appendage": "s", 8775 "continuation": false, 8776 "intact": false, 8777 "pattern": "fuj", 8778 "size": "1" 8779 }, 8780 { 8781 "appendage": "d", 8782 "continuation": false, 8783 "intact": false, 8784 "pattern": "uj", 8785 "size": "1" 8786 }, 8787 { 8788 "appendage": "d", 8789 "continuation": false, 8790 "intact": false, 8791 "pattern": "oj", 8792 "size": "1" 8793 }, 8794 { 8795 "appendage": "r", 8796 "continuation": false, 8797 "intact": false, 8798 "pattern": "hej", 8799 "size": "1" 8800 }, 8801 { 8802 "appendage": "t", 8803 "continuation": false, 8804 "intact": false, 8805 "pattern": "verj", 8806 "size": "1" 8807 }, 8808 { 8809 "appendage": "t", 8810 "continuation": false, 8811 "intact": false, 8812 "pattern": "misj", 8813 "size": "2" 8814 }, 8815 { 8816 "appendage": "d", 8817 "continuation": false, 8818 "intact": false, 8819 "pattern": "nj", 8820 "size": "1" 8821 }, 8822 { 8823 "appendage": "s", 8824 "continuation": false, 8825 "intact": false, 8826 "pattern": "j", 8827 "size": "1" 8828 } 8829 ], 8830 "l": [ 8831 { 8832 "continuation": false, 8833 "intact": false, 8834 "pattern": "ifiabl", 8835 "size": "6" 8836 }, 8837 { 8838 "appendage": "y", 8839 "continuation": false, 8840 "intact": false, 8841 "pattern": "iabl", 8842 "size": "4" 8843 }, 8844 { 8845 "continuation": true, 8846 "intact": false, 8847 "pattern": "abl", 8848 "size": "3" 8849 }, 8850 { 8851 "continuation": false, 8852 "intact": false, 8853 "pattern": "ibl", 8854 "size": "3" 8855 }, 8856 { 8857 "appendage": "l", 8858 "continuation": true, 8859 "intact": false, 8860 "pattern": "bil", 8861 "size": "2" 8862 }, 8863 { 8864 "continuation": false, 8865 "intact": false, 8866 "pattern": "cl", 8867 "size": "1" 8868 }, 8869 { 8870 "appendage": "y", 8871 "continuation": false, 8872 "intact": false, 8873 "pattern": "iful", 8874 "size": "4" 8875 }, 8876 { 8877 "continuation": true, 8878 "intact": false, 8879 "pattern": "ful", 8880 "size": "3" 8881 }, 8882 { 8883 "continuation": false, 8884 "intact": false, 8885 "pattern": "ul", 8886 "size": "2" 8887 }, 8888 { 8889 "continuation": true, 8890 "intact": false, 8891 "pattern": "ial", 8892 "size": "3" 8893 }, 8894 { 8895 "continuation": true, 8896 "intact": false, 8897 "pattern": "ual", 8898 "size": "3" 8899 }, 8900 { 8901 "continuation": true, 8902 "intact": false, 8903 "pattern": "al", 8904 "size": "2" 8905 }, 8906 { 8907 "continuation": false, 8908 "intact": false, 8909 "pattern": "ll", 8910 "size": "1" 8911 } 8912 ], 8913 "m": [ 8914 { 8915 "continuation": false, 8916 "intact": false, 8917 "pattern": "ium", 8918 "size": "3" 8919 }, 8920 { 8921 "continuation": false, 8922 "intact": true, 8923 "pattern": "um", 8924 "size": "2" 8925 }, 8926 { 8927 "continuation": true, 8928 "intact": false, 8929 "pattern": "ism", 8930 "size": "3" 8931 }, 8932 { 8933 "continuation": false, 8934 "intact": false, 8935 "pattern": "mm", 8936 "size": "1" 8937 } 8938 ], 8939 "n": [ 8940 { 8941 "appendage": "j", 8942 "continuation": true, 8943 "intact": false, 8944 "pattern": "sion", 8945 "size": "4" 8946 }, 8947 { 8948 "appendage": "c", 8949 "continuation": false, 8950 "intact": false, 8951 "pattern": "xion", 8952 "size": "4" 8953 }, 8954 { 8955 "continuation": true, 8956 "intact": false, 8957 "pattern": "ion", 8958 "size": "3" 8959 }, 8960 { 8961 "continuation": true, 8962 "intact": false, 8963 "pattern": "ian", 8964 "size": "3" 8965 }, 8966 { 8967 "continuation": true, 8968 "intact": false, 8969 "pattern": "an", 8970 "size": "2" 8971 }, 8972 { 8973 "continuation": false, 8974 "intact": false, 8975 "pattern": "een", 8976 "size": "0" 8977 }, 8978 { 8979 "continuation": true, 8980 "intact": false, 8981 "pattern": "en", 8982 "size": "2" 8983 }, 8984 { 8985 "continuation": false, 8986 "intact": false, 8987 "pattern": "nn", 8988 "size": "1" 8989 } 8990 ], 8991 "p": [ 8992 { 8993 "continuation": true, 8994 "intact": false, 8995 "pattern": "ship", 8996 "size": "4" 8997 }, 8998 { 8999 "continuation": false, 9000 "intact": false, 9001 "pattern": "pp", 9002 "size": "1" 9003 } 9004 ], 9005 "r": [ 9006 { 9007 "continuation": true, 9008 "intact": false, 9009 "pattern": "er", 9010 "size": "2" 9011 }, 9012 { 9013 "continuation": false, 9014 "intact": false, 9015 "pattern": "ear", 9016 "size": "0" 9017 }, 9018 { 9019 "continuation": false, 9020 "intact": false, 9021 "pattern": "ar", 9022 "size": "2" 9023 }, 9024 { 9025 "continuation": true, 9026 "intact": false, 9027 "pattern": "or", 9028 "size": "2" 9029 }, 9030 { 9031 "continuation": true, 9032 "intact": false, 9033 "pattern": "ur", 9034 "size": "2" 9035 }, 9036 { 9037 "continuation": false, 9038 "intact": false, 9039 "pattern": "rr", 9040 "size": "1" 9041 }, 9042 { 9043 "continuation": true, 9044 "intact": false, 9045 "pattern": "tr", 9046 "size": "1" 9047 }, 9048 { 9049 "appendage": "y", 9050 "continuation": true, 9051 "intact": false, 9052 "pattern": "ier", 9053 "size": "3" 9054 } 9055 ], 9056 "s": [ 9057 { 9058 "appendage": "y", 9059 "continuation": true, 9060 "intact": false, 9061 "pattern": "ies", 9062 "size": "3" 9063 }, 9064 { 9065 "continuation": false, 9066 "intact": false, 9067 "pattern": "sis", 9068 "size": "2" 9069 }, 9070 { 9071 "continuation": true, 9072 "intact": false, 9073 "pattern": "is", 9074 "size": "2" 9075 }, 9076 { 9077 "continuation": true, 9078 "intact": false, 9079 "pattern": "ness", 9080 "size": "4" 9081 }, 9082 { 9083 "continuation": false, 9084 "intact": false, 9085 "pattern": "ss", 9086 "size": "0" 9087 }, 9088 { 9089 "continuation": true, 9090 "intact": false, 9091 "pattern": "ous", 9092 "size": "3" 9093 }, 9094 { 9095 "continuation": false, 9096 "intact": true, 9097 "pattern": "us", 9098 "size": "2" 9099 }, 9100 { 9101 "continuation": true, 9102 "intact": true, 9103 "pattern": "s", 9104 "size": "1" 9105 }, 9106 { 9107 "continuation": false, 9108 "intact": false, 9109 "pattern": "s", 9110 "size": "0" 9111 } 9112 ], 9113 "t": [ 9114 { 9115 "appendage": "y", 9116 "continuation": false, 9117 "intact": false, 9118 "pattern": "plicat", 9119 "size": "4" 9120 }, 9121 { 9122 "continuation": true, 9123 "intact": false, 9124 "pattern": "at", 9125 "size": "2" 9126 }, 9127 { 9128 "continuation": true, 9129 "intact": false, 9130 "pattern": "ment", 9131 "size": "4" 9132 }, 9133 { 9134 "continuation": true, 9135 "intact": false, 9136 "pattern": "ent", 9137 "size": "3" 9138 }, 9139 { 9140 "continuation": true, 9141 "intact": false, 9142 "pattern": "ant", 9143 "size": "3" 9144 }, 9145 { 9146 "appendage": "b", 9147 "continuation": false, 9148 "intact": false, 9149 "pattern": "ript", 9150 "size": "2" 9151 }, 9152 { 9153 "appendage": "b", 9154 "continuation": false, 9155 "intact": false, 9156 "pattern": "orpt", 9157 "size": "2" 9158 }, 9159 { 9160 "continuation": false, 9161 "intact": false, 9162 "pattern": "duct", 9163 "size": "1" 9164 }, 9165 { 9166 "continuation": false, 9167 "intact": false, 9168 "pattern": "sumpt", 9169 "size": "2" 9170 }, 9171 { 9172 "appendage": "i", 9173 "continuation": false, 9174 "intact": false, 9175 "pattern": "cept", 9176 "size": "2" 9177 }, 9178 { 9179 "appendage": "v", 9180 "continuation": false, 9181 "intact": false, 9182 "pattern": "olut", 9183 "size": "2" 9184 }, 9185 { 9186 "continuation": false, 9187 "intact": false, 9188 "pattern": "sist", 9189 "size": "0" 9190 }, 9191 { 9192 "continuation": true, 9193 "intact": false, 9194 "pattern": "ist", 9195 "size": "3" 9196 }, 9197 { 9198 "continuation": false, 9199 "intact": false, 9200 "pattern": "tt", 9201 "size": "1" 9202 } 9203 ], 9204 "u": [ 9205 { 9206 "continuation": false, 9207 "intact": false, 9208 "pattern": "iqu", 9209 "size": "3" 9210 }, 9211 { 9212 "continuation": false, 9213 "intact": false, 9214 "pattern": "ogu", 9215 "size": "1" 9216 } 9217 ], 9218 "v": [ 9219 { 9220 "appendage": "j", 9221 "continuation": true, 9222 "intact": false, 9223 "pattern": "siv", 9224 "size": "3" 9225 }, 9226 { 9227 "continuation": false, 9228 "intact": false, 9229 "pattern": "eiv", 9230 "size": "0" 9231 }, 9232 { 9233 "continuation": true, 9234 "intact": false, 9235 "pattern": "iv", 9236 "size": "2" 9237 } 9238 ], 9239 "y": [ 9240 { 9241 "continuation": true, 9242 "intact": false, 9243 "pattern": "bly", 9244 "size": "1" 9245 }, 9246 { 9247 "appendage": "y", 9248 "continuation": true, 9249 "intact": false, 9250 "pattern": "ily", 9251 "size": "3" 9252 }, 9253 { 9254 "continuation": false, 9255 "intact": false, 9256 "pattern": "ply", 9257 "size": "0" 9258 }, 9259 { 9260 "continuation": true, 9261 "intact": false, 9262 "pattern": "ly", 9263 "size": "2" 9264 }, 9265 { 9266 "continuation": false, 9267 "intact": false, 9268 "pattern": "ogy", 9269 "size": "1" 9270 }, 9271 { 9272 "continuation": false, 9273 "intact": false, 9274 "pattern": "phy", 9275 "size": "1" 9276 }, 9277 { 9278 "continuation": false, 9279 "intact": false, 9280 "pattern": "omy", 9281 "size": "1" 9282 }, 9283 { 9284 "continuation": false, 9285 "intact": false, 9286 "pattern": "opy", 9287 "size": "1" 9288 }, 9289 { 9290 "continuation": true, 9291 "intact": false, 9292 "pattern": "ity", 9293 "size": "3" 9294 }, 9295 { 9296 "continuation": true, 9297 "intact": false, 9298 "pattern": "ety", 9299 "size": "3" 9300 }, 9301 { 9302 "continuation": false, 9303 "intact": false, 9304 "pattern": "lty", 9305 "size": "2" 9306 }, 9307 { 9308 "continuation": false, 9309 "intact": false, 9310 "pattern": "istry", 9311 "size": "5" 9312 }, 9313 { 9314 "continuation": true, 9315 "intact": false, 9316 "pattern": "ary", 9317 "size": "3" 9318 }, 9319 { 9320 "continuation": true, 9321 "intact": false, 9322 "pattern": "ory", 9323 "size": "3" 9324 }, 9325 { 9326 "continuation": false, 9327 "intact": false, 9328 "pattern": "ify", 9329 "size": "3" 9330 }, 9331 { 9332 "appendage": "t", 9333 "continuation": true, 9334 "intact": false, 9335 "pattern": "ncy", 9336 "size": "2" 9337 }, 9338 { 9339 "continuation": true, 9340 "intact": false, 9341 "pattern": "acy", 9342 "size": "3" 9343 } 9344 ], 9345 "z": [ 9346 { 9347 "continuation": true, 9348 "intact": false, 9349 "pattern": "iz", 9350 "size": "2" 9351 }, 9352 { 9353 "appendage": "s", 9354 "continuation": false, 9355 "intact": false, 9356 "pattern": "yz", 9357 "size": "1" 9358 } 9359 ] 9360 }; 9361 9362 return function(token) { 9363 9364 return applyRules(token.toLowerCase(), true); 9365 } 9366 9367 })(); 9368 9369 ////////////////////////////////////////////////////////////////// 9370 //////// MinEditDist (singleton) 9371 //////////////////////////////////////////////////////////////// 9372 9373 /** 9374 * Minimum-Edit-Distance (or Levenshtein distance) is a measure of the similarity 9375 * between two strings, the source string and the target string (t). The distance 9376 * is the number of deletions, insertions, or substitutions required to transform 9377 * the source into the target / avg_string_length<p> 9378 * 9379 * Adapted from Michael Gilleland's algorithm 9380 * 9381 * @name MinEditDist 9382 * @class 9383 * @private 9384 */ 9385 var MinEditDist = { 9386 9387 _min3 : function(a,b,c) { 9388 9389 var min = a; 9390 if (b < min) min = b; 9391 if (c < min) min = c; 9392 return min; 9393 }, 9394 9395 /** 9396 * Computes min-edit-distance between 2 string arrays 9397 * where each array element either matches or does not 9398 */ 9399 _computeRawArray : function(srcArr, trgArr) { // TODO: make private to class 9400 9401 //log((srcArr)+" "+(trgArr)); 9402 9403 var matrix = []; // matrix 9404 var sI; // ith element of s 9405 var tJ; // jth element of t 9406 var cost; // cost 9407 9408 // Step 1 ---------------------------------------------- 9409 9410 if (srcArr.length == 0) return trgArr.length; 9411 9412 if (trgArr.length == 0) return srcArr.length; 9413 9414 //matrix = new var[srcArr.length + 1][trgArr.length + 1]; 9415 9416 // Step 2 ---------------------------------------------- 9417 9418 for (var i = 0; i <= srcArr.length; i++) { 9419 matrix[i] = []; 9420 matrix[i][0] = i; 9421 } 9422 9423 for (var j = 0; j <= trgArr.length; j++) 9424 matrix[0][j] = j; 9425 9426 // Step 3 ---------------------------------------------- 9427 9428 //String[] srcArr = RiFreeTTSEngine.cleanPhonemes(srcArr); 9429 for (var i = 1; i <= srcArr.length; i++) 9430 { 9431 sI = srcArr[i - 1]; 9432 9433 // Step 4 -------------------------------------------- 9434 9435 for (var j = 1; j <= trgArr.length; j++) 9436 { 9437 tJ = trgArr[j - 1]; 9438 9439 // Step 5 ------------------------------------------ 9440 9441 cost = (sI === tJ) ? 0 : 1; 9442 9443 // Step 6 ------------------------------------------ 9444 matrix[i][j] = this._min3 (matrix[i - 1][j] + 1, 9445 matrix[i][j - 1] + 1, 9446 matrix[i - 1][j - 1] + cost); 9447 } 9448 } 9449 9450 // Step 7 ---------------------------------------------- 9451 9452 return matrix[srcArr.length][trgArr.length]; 9453 }, 9454 9455 9456 /** 9457 * Compute min-edit-distance between 2 strings 9458 * @see MinEditDist#computeAdjusted(java.lang.String,java.lang.String) 9459 */ 9460 computeRaw : function(source, target) { 9461 9462 var st = Type.get(source), tt = Type.get(source); 9463 9464 if (st!=tt) err('Unexpected args: '+source+"/"+target); 9465 9466 if (tt===A) return this._computeRawArray(source, target); 9467 9468 if (!source.length && !target.length) return 0; 9469 9470 var matrix = []; // matrix 9471 var sI; // ith character of s 9472 var tJ; // jth character of t 9473 var cost; // cost 9474 9475 // Step 1 ---------------------------------------------- 9476 var sourceLength = source.length; 9477 var targetLength = target.length; 9478 9479 if (sourceLength == 0) return targetLength; 9480 9481 if (targetLength == 0) return sourceLength; 9482 9483 //matrix = new int[sourceLength + 1][targetLength + 1]; 9484 9485 // Step 2 ---------------------------------------------- 9486 9487 for (var i = 0; i <= sourceLength; i++) { 9488 matrix[i] = []; 9489 matrix[i][0] = i; 9490 } 9491 9492 for (var j = 0; j <= targetLength; j++) 9493 matrix[0][j] = j; 9494 9495 // Step 3 ---------------------------------------------- 9496 9497 for (var i = 1; i <= sourceLength; i++) 9498 { 9499 9500 sI = source.charAt(i - 1); 9501 9502 // Step 4 -------------------------------------------- 9503 9504 for (var j = 1; j <= targetLength; j++) 9505 { 9506 tJ = target.charAt(j - 1); 9507 9508 // Step 5 ------------------------------------------ 9509 9510 cost = (sI == tJ) ? 0 : 1; 9511 9512 // Step 6 ------------------------------------------ 9513 matrix[i][j] = this._min3(matrix[i - 1][j] + 1, 9514 matrix[i][j - 1] + 1, 9515 matrix[i - 1][j - 1] + cost); 9516 } 9517 } 9518 9519 // Step 7 ---------------------------------------------- 9520 9521 return matrix[sourceLength][targetLength]; 9522 9523 }, 9524 9525 /** 9526 * Compute min-edit-distance between 2 strings (or 2 arrays of strings) 9527 * divided by their average length. 9528 */ 9529 computeAdjusted : function(source, target) { 9530 9531 var st = Type.get(source), tt = Type.get(source); 9532 if (st===tt) { 9533 9534 if (tt===S) { 9535 if (!source.length && !target.length) return 0; 9536 //log(this.computeRaw(source, target)+'/'+(source.length + target.length)); 9537 return this.computeRaw(source, target) / (source.length + target.length); 9538 } 9539 else if (tt===A) { 9540 if (!source.length && !target.length) return 0; 9541 //log(_computeRawArray(source, target)+'/'+(source.length + target.length)); 9542 return this._computeRawArray(source, target) / (source.length + target.length); 9543 } 9544 } 9545 err('Unexpected args: '+source+"/"+target); 9546 9547 } 9548 9549 } 9550 9551 ////////////////////////////////////////////////////////////////// 9552 //////// RegexRule 9553 //////////////////////////////////////////////////////////////// 9554 9555 /** 9556 * @name RegexRule 9557 * @class 9558 * @private 9559 */ 9560 var RegexRule = makeClass(); 9561 9562 RegexRule.prototype = { 9563 9564 initialize : function(regex, offset, suffix) { 9565 9566 this.regex = new RegExp(regex); 9567 this.offset = offset; 9568 this.suffix = suffix; 9569 }, 9570 9571 applies : function(word) { 9572 9573 return this.regex.test(trim(word)); 9574 }, 9575 9576 fire : function(word) { 9577 9578 return this.truncate(trim(word)) + this.suffix; 9579 }, 9580 9581 analyze : function(word) { 9582 9583 return ((this.suffix != "") && endsWith(word, this.suffix)) ? true : false; 9584 }, 9585 9586 truncate : function(word) { 9587 9588 return (this.offset == 0) ? word : word.substr(0, word.length - this.offset); 9589 } 9590 } 9591 9592 9593 9594 ////////////////////////////////////////////////////////////////////////////////////// 9595 // adapted from: https://github.com/sole/tween.js 9596 ////////////////////////////////////////////////////////////////////////////////////// 9597 9598 /** 9599 * @private 9600 */ 9601 var TextBehavior = function (rt, object) { 9602 9603 var _parent = rt; 9604 var _object = object || _parent; 9605 var _valuesStart = {}; 9606 var _valuesEnd = {}; 9607 var _duration = 1000; 9608 var _delayTime = 0; 9609 var _startTime = null; 9610 var _easingFunction = Easing.Linear.None; 9611 var _interpolationFunction = Interpolation.Linear; 9612 var _chainedTween = null; 9613 var _onUpdateCallback = null; 9614 var _onCompleteCallback = null; 9615 9616 this.to = function ( properties, duration ) { 9617 9618 if ( duration !== null ) { 9619 9620 _duration = duration; 9621 } 9622 9623 _valuesEnd = properties; 9624 9625 return this; 9626 } 9627 9628 this.start = function ( time ) { 9629 9630 if (_parent) 9631 _parent._addBehavior( this ); 9632 else 9633 err('Unable to add tween'); 9634 9635 _startTime = time !== undefined ? time : Date.now(); 9636 _startTime += _delayTime; 9637 9638 for ( var property in _valuesEnd ) { 9639 9640 // This prevents the engine from interpolating null values 9641 if ( _object[ property ] === null ) { 9642 console.error('null value in interpolater for: '+property); 9643 continue; 9644 9645 } 9646 9647 // check if an Array was provided as property value 9648 if ( _valuesEnd[ property ] instanceof Array ) { 9649 9650 if ( _valuesEnd[ property ].length === 0 ) { 9651 9652 continue; 9653 } 9654 9655 // create a local copy of the Array with the start value at the front 9656 _valuesEnd[ property ] = [ _object[ property ] ].concat( _valuesEnd[ property ] ); 9657 } 9658 9659 _valuesStart[ property ] = _object[ property ]; 9660 } 9661 9662 return this; 9663 9664 } 9665 9666 this.stop = function () { 9667 9668 if (_parent) _parent._removeBehavior( this ); 9669 return this; 9670 9671 } 9672 9673 this.delay = function ( amount ) { 9674 9675 _delayTime = amount; 9676 return this; 9677 9678 } 9679 9680 this.easing = function ( easing ) { 9681 9682 _easingFunction = easing; 9683 return this; 9684 9685 } 9686 9687 this.interpolation = function ( interpolation ) { 9688 9689 _interpolationFunction = interpolation; 9690 return this; 9691 9692 } 9693 9694 this.chain = function ( chainedTween ) { 9695 9696 _chainedTween = chainedTween; 9697 return this; 9698 9699 } 9700 9701 this.onUpdate = function ( onUpdateCallback ) { 9702 9703 _onUpdateCallback = onUpdateCallback; 9704 return this; 9705 9706 } 9707 9708 this.onComplete = function ( onCompleteCallback ) { 9709 9710 _onCompleteCallback = onCompleteCallback; 9711 return this; 9712 9713 } 9714 9715 this.update = function ( time ) { 9716 9717 if ( time < _startTime ) { 9718 9719 return true; 9720 9721 } 9722 9723 var elapsed = ( time - _startTime ) / _duration; 9724 elapsed = elapsed > 1 ? 1 : elapsed; 9725 9726 var value = _easingFunction( elapsed ); 9727 9728 for ( var property in _valuesStart ) { 9729 9730 var start = _valuesStart[ property ]; 9731 var end = _valuesEnd[ property ]; 9732 9733 if ( end instanceof Array ) { 9734 9735 _object[ property ] = _interpolationFunction( end, value ); 9736 9737 } else { 9738 9739 _object[ property ] = start + ( end - start ) * value; 9740 9741 } 9742 } 9743 9744 if (_onUpdateCallback !== null ) { 9745 9746 _onUpdateCallback.call( _object, value ); 9747 } 9748 9749 if ( elapsed == 1 ) { 9750 9751 if ( _onCompleteCallback !== null ) { 9752 9753 _onCompleteCallback.call( _object ); 9754 } 9755 9756 if ( _chainedTween !== null ) { 9757 9758 _chainedTween.start(); 9759 } 9760 9761 return false; 9762 9763 } 9764 9765 return true; 9766 } 9767 9768 } 9769 9770 /** 9771 * @name RiText_P5 9772 * @class 9773 * @private 9774 */ 9775 var RiText_P5 = makeClass(); 9776 9777 RiText_P5.prototype = { 9778 9779 initialize : function(p) { 9780 9781 this.p = p; 9782 }, 9783 9784 _size : function() { 9785 9786 return this.p.size.apply(this, arguments); 9787 }, 9788 9789 _getGraphics : function() { 9790 9791 return this.p; 9792 }, 9793 9794 _pushState : function(str) { 9795 9796 this.p.pushStyle(); 9797 this.p.pushMatrix(); 9798 return this; 9799 }, 9800 9801 _popState : function() { 9802 9803 this.p.popStyle(); 9804 this.p.popMatrix(); 9805 return this; 9806 }, 9807 9808 _textAlign : function(align) { 9809 9810 this.p.textAlign.apply(this,arguments); 9811 return this; 9812 }, 9813 9814 _scale : function(sx, sy) { 9815 9816 this.p.scale(sx, sy, 1); 9817 }, 9818 9819 _translate : function(tx, ty) { 9820 9821 this.p.translate(tx, ty, 0); 9822 }, 9823 9824 _rotate : function(zRot) { 9825 9826 this.p.rotate(zRot); 9827 }, 9828 9829 _text : function(str, x, y) { 9830 9831 this.p.text.apply(this,arguments); 9832 }, 9833 9834 _fill : function(r,g,b,a) { 9835 9836 this.p.fill.apply(this,arguments); 9837 }, 9838 9839 _stroke : function(r,g,b,a) { 9840 9841 this.p.stroke.apply(this,arguments); 9842 }, 9843 9844 _background : function(r,g,b,a) { 9845 9846 this.p.background.apply(this,arguments); 9847 }, 9848 9849 // actual creation: only called from RiText.createDefaultFont();! 9850 _createFont : function(fontName, fontSize, leading) { // ignores leading 9851 9852 //log("[P5] Creating font: "+fontName+"-"+fontSize+"/"+leading); 9853 return this.p.createFont(fontName, fontSize); 9854 }, 9855 9856 _rect : function(x,y,w,h) { 9857 9858 this.p.rect.apply(this,arguments); 9859 }, 9860 9861 _line : function(x1,y1,x2,y2,lw) { 9862 9863 if (lw) p.strokeWeight(lw); 9864 this.p.line.apply(this,arguments); 9865 }, 9866 9867 _textFont : function(fontObj) { 9868 9869 if (!Type.is(fontObj,O)) 9870 err("_textFont takes object!"); 9871 this.p.textFont(fontObj, fontObj.size); 9872 }, 9873 9874 _textWidth : function(fontObj, str) { 9875 9876 this.p.pushStyle(); 9877 this.p.textFont(fontObj,fontObj.size); // was _textFont 9878 var tw = this.p.textWidth(str); 9879 this.p.popStyle(); 9880 return tw; 9881 }, 9882 9883 _textHeight : function(rt) { 9884 9885 return this._getBoundingBox(rt).height; 9886 }, 9887 9888 _textAscent : function(rt) { 9889 9890 this.p.pushStyle(); 9891 this.p.textFont(rt._font, rt._font.size); 9892 var asc = this.p.textAscent(); 9893 this.p.popStyle(); 9894 return asc; 9895 }, 9896 9897 _textDescent : function(rt) { 9898 9899 this.p.pushStyle(); 9900 this.p.textFont(rt._font, rt._font.size); 9901 var dsc = this.p.textDescent(); 9902 this.p.popStyle(); 9903 return dsc; 9904 }, 9905 9906 _width : function() { 9907 9908 return this.p.width; 9909 }, 9910 9911 _height : function() { 9912 9913 return this.p.height; 9914 }, 9915 9916 // what about scale? 9917 _getBoundingBox : function(rt) { 9918 9919 this.p.pushStyle(); 9920 9921 var ascent = Math.round(this.p.textAscent()), 9922 descent = Math.round(this.p.textDescent()), 9923 width = Math.round(this.p.textWidth(rt.text())); 9924 9925 this.p.popStyle(); 9926 9927 return { x: 0, y: descent-1, width: width, height: (ascent+descent)+1 }; 9928 }, 9929 9930 _type : function() { 9931 9932 return "Processing"; 9933 }, 9934 9935 toString : function() { 9936 9937 return "RiText_"+this._type; 9938 } 9939 } 9940 9941 ////////////////////////////////// End Classes /////////////////////////////////// 9942 9943 // TODO: clean this mess up... wrap in Constants 9944 9945 var QUESTION_STARTS = ["Was", "What", "When", "Where", "How", "Which", "If", "Who", "Is", "Could", "Might", "Will", "Does", "Why", "Are" ]; 9946 9947 var W_QUESTION_STARTS = ["Was", "What", "When", "Where", "How", "Which", "Why", "Who", "Will"]; 9948 9949 var PUNCTUATION_CLASS = /[-[\]{}()*+!?%&.,\\^$|#@<>|+=;:]/g, ONLY_PUNCT = /^[^0-9A-Za-z\s]*$/; 9950 9951 var ALL_PUNCT = /^[-[\]{}()*+!?%&.,\\^$|#@<>|+=;:]+$/g, DeLiM = ':DeLiM:', RiTextCallbacksDisabled = false; 9952 9953 var SP = ' ', E = '', N = Type.N, S = Type.S, O = Type.O, A = Type.A, B = Type.B, R = Type.R, F = Type.F; 9954 9955 var DEFAULT_PLURAL_RULE = RegexRule("^((\\w+)(-\\w+)*)(\\s((\\w+)(-\\w+)*))*$", 0, "s"); 9956 9957 var PLURAL_RULES = [ 9958 RegexRule("^(piano|photo|solo|ego|tobacco|cargo|golf|grief)$", 0, "s"), 9959 RegexRule("^(wildlife)$", 0, "s"), 9960 RegexRule("[bcdfghjklmnpqrstvwxyz]o$", 0, "es"), 9961 RegexRule("[bcdfghjklmnpqrstvwxyz]y$", 1, "ies"), 9962 RegexRule("([zsx]|ch|sh)$", 0, "es"), 9963 RegexRule("[lraeiou]fe$", 2, "ves"), 9964 RegexRule("[lraeiou]f$", 1, "ves"), 9965 RegexRule("(eu|eau)$", 0, "x"), 9966 RegexRule("(man|woman)$", 2, "en"), 9967 RegexRule("money$", 2, "ies"), 9968 RegexRule("person$", 4, "ople"), 9969 RegexRule("motif$", 0, "s"), 9970 RegexRule("^meninx|phalanx$", 1, "ges"), 9971 RegexRule("(xis|sis)$", 2, "es"), 9972 RegexRule("schema$", 0, "ta"), 9973 RegexRule("^bus$", 0, "ses"), 9974 RegexRule("child$", 0, "ren"), 9975 RegexRule("^(curi|formul|vertebr|larv|uln|alumn|signor|alg)a$", 0, "e"), 9976 RegexRule("^corpus$", 2, "ora"), 9977 RegexRule("^(maharaj|raj|myn|mull)a$", 0, "hs"), 9978 RegexRule("^aide-de-camp$", 8, "s-de-camp"), 9979 RegexRule("^apex|cortex$", 2, "ices"), 9980 RegexRule("^weltanschauung$", 0, "en"), 9981 RegexRule("^lied$", 0, "er"), 9982 RegexRule("^tooth$", 4, "eeth"), 9983 RegexRule("^[lm]ouse$", 4, "ice"), 9984 RegexRule("^foot$", 3, "eet"), 9985 RegexRule("femur", 2, "ora"), 9986 RegexRule("goose", 4, "eese"), 9987 RegexRule("(human|german|roman)$", 0, "s"), 9988 RegexRule("(crisis)$", 2, "es"), 9989 RegexRule("^(monarch|loch|stomach)$", 0, "s"), 9990 RegexRule("^(taxi|chief|proof|ref|relief|roof|belief)$", 0, "s"), 9991 RegexRule("^(co|no)$", 0, "'s"), 9992 RegexRule("^(memorandum|bacterium|curriculum|minimum|" 9993 + "maximum|referendum|spectrum|phenomenon|criterion)$", 2, "a"), 9994 RegexRule("^(appendix|index|matrix)", 2, "ices"), 9995 RegexRule("^(stimulus|alumnus)$", 2, "i"), 9996 RegexRule( 9997 "^(Bantu|Bengalese|Bengali|Beninese|Boche|bonsai|" 9998 + "Burmese|Chinese|Congolese|Gabonese|Guyanese|Japanese|Javanese|" 9999 + "Lebanese|Maltese|Olympics|Portuguese|Senegalese|Siamese|Singhalese|" 10000 + "Sinhalese|Sioux|Sudanese|Swiss|Taiwanese|Togolese|Vietnamese|aircraft|" 10001 + "anopheles|apparatus|asparagus|barracks|bellows|bison|bluefish|bob|bourgeois|" 10002 + "bream|brill|butterfingers|carp|catfish|chassis|clothes|chub|cod|codfish|" 10003 + "coley|contretemps|corps|crawfish|crayfish|crossroads|cuttlefish|dace|dice|" 10004 + "dogfish|doings|dory|downstairs|eldest|earnings|economics|electronics|finnan|" 10005 + "firstborn|fish|flatfish|flounder|fowl|fry|fries|works|globefish|goldfish|" 10006 + "grand|gudgeon|gulden|haddock|hake|halibut|headquarters|herring|hertz|horsepower|" 10007 + "goods|hovercraft|hundredweight|ironworks|jackanapes|kilohertz|kurus|kwacha|ling|lungfish|" 10008 + "mackerel|means|megahertz|moorfowl|moorgame|mullet|nepalese|offspring|pampas|parr|(pants$)|" 10009 + "patois|pekinese|penn'orth|perch|pickerel|pike|pince-nez|plaice|precis|quid|rand|" 10010 + "rendezvous|revers|roach|roux|salmon|samurai|series|seychelles|seychellois|shad|" 10011 + "sheep|shellfish|smelt|spacecraft|species|starfish|stockfish|sunfish|superficies|" 10012 + "sweepstakes|swordfish|tench|tennis|tope|triceps|trout|tuna|tunafish|tunny|turbot|trousers|" 10013 + "undersigned|veg|waterfowl|waterworks|waxworks|whiting|wildfowl|woodworm|" 10014 + "yen|aries|pisces|forceps|lieder|jeans|physics|mathematics|news|odds|politics|remains|" 10015 + "surroundings|thanks|statistics|goods|aids)$", 0, "", 0) 10016 ], 10017 ANY_STEM = "^((\\w+)(-\\w+)*)(\\s((\\w+)(-\\w+)*))*$", CONS = "[bcdfghjklmnpqrstvwxyz]", 10018 VERBAL_PREFIX = "((be|with|pre|un|over|re|mis|under|out|up|fore|for|counter|co|sub)(-?))", 10019 10020 AUXILIARIES = [ "do", "have", "be" ], 10021 MODALS = [ "shall", "would", "may", "might", "ought", "should" ], 10022 // also used by pluralizer 10023 SYMBOLS = [ "!", "?", "$", "%", "*", "+", "-", "=" ], 10024 10025 ING_FORM_RULES = [ 10026 RegexRule(CONS + "ie$", 2, "ying", 1), 10027 RegexRule("[^ie]e$", 1, "ing", 1), 10028 RegexRule("^bog-down$", 5, "ging-down", 0), 10029 RegexRule("^chivy$", 1, "vying", 0), 10030 RegexRule("^gen-up$", 3, "ning-up", 0), 10031 RegexRule("^trek$", 1, "cking", 0), RegexRule("^ko$", 0, "'ing", 0), 10032 RegexRule("^(age|be)$", 0, "ing", 0), RegexRule("(ibe)$", 1, "ing", 0) 10033 ], 10034 10035 PAST_PARTICIPLE_RULES = [ RegexRule("e$", 0, "d", 1), 10036 RegexRule(CONS + "y$", 1, "ied", 1), 10037 RegexRule("^" + VERBAL_PREFIX + "?(bring)$", 3, "ought", 0), 10038 RegexRule( 10039 "^" 10040 + VERBAL_PREFIX 10041 + "?(take|rise|strew|blow|draw|drive|know|give|" 10042 + "arise|gnaw|grave|grow|hew|know|mow|see|sew|throw|prove|saw|quartersaw|" 10043 + "partake|sake|shake|shew|show|shrive|sightsee|strew|strive)$", 10044 0, "n", 0), 10045 RegexRule("^" + VERBAL_PREFIX + "?[gd]o$", 0, "ne", 1), 10046 RegexRule("^(beat|eat|be|fall)$", 0, "en", 0), 10047 RegexRule("^(have)$", 2, "d", 0), 10048 RegexRule("^" + VERBAL_PREFIX + "?bid$", 0, "den", 0), 10049 RegexRule("^" + VERBAL_PREFIX + "?[lps]ay$", 1, "id", 1), 10050 RegexRule("^behave$", 0, "d", 0), 10051 RegexRule("^" + VERBAL_PREFIX + "?have$", 2, "d", 1), 10052 RegexRule("(sink|slink|drink)$", 3, "unk", 0), 10053 RegexRule("(([sfc][twlp]?r?|w?r)ing|hang)$", 3, "ung", 0), 10054 RegexRule("^" + VERBAL_PREFIX + "?(shear|swear|bear|wear|tear)$",3,"orn",0), 10055 RegexRule("^" + VERBAL_PREFIX + "?(bend|spend|send|lend)$", 1, "t", 0), 10056 RegexRule("^" + VERBAL_PREFIX + "?(weep|sleep|sweep|creep|keep$)$", 2,"pt", 0), 10057 RegexRule("^" + VERBAL_PREFIX + "?(sell|tell)$", 3, "old", 0), 10058 RegexRule("^(outfight|beseech)$", 4, "ought", 0), 10059 RegexRule("^bethink$", 3, "ought", 0), 10060 RegexRule("^buy$", 2, "ought", 0), 10061 RegexRule("^aby$", 1, "ought", 0), 10062 RegexRule("^tarmac", 0, "ked", 0), 10063 RegexRule("^abide$", 3, "ode", 0), 10064 RegexRule("^" + VERBAL_PREFIX + "?(speak|(a?)wake|break)$", 3, "oken", 0), 10065 RegexRule("^backbite$", 1, "ten", 0), 10066 RegexRule("^backslide$", 1, "den", 0), 10067 RegexRule("^become$", 3, "ame", 0), 10068 RegexRule("^begird$", 3, "irt", 0), 10069 RegexRule("^outlie$", 2, "ay", 0), 10070 RegexRule("^rebind$", 3, "ound", 0), 10071 RegexRule("^relay$", 2, "aid", 0), 10072 RegexRule("^shit$", 3, "hat", 0), 10073 RegexRule("^bereave$", 4, "eft", 0), 10074 RegexRule("^foreswear$", 3, "ore", 0), 10075 RegexRule("^overfly$", 1, "own", 0), 10076 RegexRule("^beget$", 2, "otten", 0), 10077 RegexRule("^begin$", 3, "gun", 0), 10078 RegexRule("^bestride$", 1, "den", 0), 10079 RegexRule("^bite$", 1, "ten", 0), 10080 RegexRule("^bleed$", 4, "led", 0), 10081 RegexRule("^bog-down$", 5, "ged-down", 0), 10082 RegexRule("^bind$", 3, "ound", 0), 10083 RegexRule("^(.*)feed$", 4, "fed", 0), 10084 RegexRule("^breed$", 4, "red", 0), 10085 RegexRule("^brei", 0, "d", 0), 10086 RegexRule("^bring$", 3, "ought", 0), 10087 RegexRule("^build$", 1, "t", 0), 10088 RegexRule("^come", 0, "", 0), 10089 RegexRule("^catch$", 3, "ught", 0), 10090 RegexRule("^chivy$", 1, "vied", 0), 10091 RegexRule("^choose$", 3, "sen", 0), 10092 RegexRule("^cleave$", 4, "oven", 0), 10093 RegexRule("^crossbreed$", 4, "red", 0), 10094 RegexRule("^deal", 0, "t", 0), 10095 RegexRule("^dow$", 1, "ught", 0), 10096 RegexRule("^dream", 0, "t", 0), 10097 RegexRule("^dig$", 3, "dug", 0), 10098 RegexRule("^dwell$", 2, "lt", 0), 10099 RegexRule("^enwind$", 3, "ound", 0), 10100 RegexRule("^feel$", 3, "elt", 0), 10101 RegexRule("^flee$", 2, "ed", 0), 10102 RegexRule("^floodlight$", 5, "lit", 0), 10103 RegexRule("^fly$", 1, "own", 0), 10104 RegexRule("^forbear$", 3, "orne", 0), 10105 RegexRule("^forerun$", 3, "ran", 0), 10106 RegexRule("^forget$", 2, "otten", 0), 10107 RegexRule("^fight$", 4, "ought", 0), 10108 RegexRule("^find$", 3, "ound", 0), 10109 RegexRule("^freeze$", 4, "ozen", 0), 10110 RegexRule("^gainsay$", 2, "aid", 0), 10111 RegexRule("^gin$", 3, "gan", 0), 10112 RegexRule("^gen-up$", 3, "ned-up", 0), 10113 RegexRule("^ghostwrite$", 1, "ten", 0), 10114 RegexRule("^get$", 2, "otten", 0), 10115 RegexRule("^grind$", 3, "ound", 0), 10116 RegexRule("^hacksaw", 0, "n", 0), 10117 RegexRule("^hear", 0, "d", 0), 10118 RegexRule("^hold$", 3, "eld", 0), 10119 RegexRule("^hide$", 1, "den", 0), 10120 RegexRule("^honey$", 2, "ied", 0), 10121 RegexRule("^inbreed$", 4, "red", 0), 10122 RegexRule("^indwell$", 3, "elt", 0), 10123 RegexRule("^interbreed$", 4, "red", 0), 10124 RegexRule("^interweave$", 4, "oven", 0), 10125 RegexRule("^inweave$", 4, "oven", 0), 10126 RegexRule("^ken$", 2, "ent", 0), 10127 RegexRule("^kneel$", 3, "elt", 0), 10128 RegexRule("^lie$", 2, "ain", 0), 10129 RegexRule("^leap$", 0, "t", 0), 10130 RegexRule("^learn$", 0, "t", 0), 10131 RegexRule("^lead$", 4, "led", 0), 10132 RegexRule("^leave$", 4, "eft", 0), 10133 RegexRule("^light$", 5, "lit", 0), 10134 RegexRule("^lose$", 3, "ost", 0), 10135 RegexRule("^make$", 3, "ade", 0), 10136 RegexRule("^mean", 0, "t", 0), 10137 RegexRule("^meet$", 4, "met", 0), 10138 RegexRule("^misbecome$", 3, "ame", 0), 10139 RegexRule("^misdeal$", 2, "alt", 0), 10140 RegexRule("^mishear$", 1, "d", 0), 10141 RegexRule("^mislead$", 4, "led", 0), 10142 RegexRule("^misunderstand$", 3, "ood", 0), 10143 RegexRule("^outbreed$", 4, "red", 0), 10144 RegexRule("^outrun$", 3, "ran", 0), 10145 RegexRule("^outride$", 1, "den", 0), 10146 RegexRule("^outshine$", 3, "one", 0), 10147 RegexRule("^outshoot$", 4, "hot", 0), 10148 RegexRule("^outstand$", 3, "ood", 0), 10149 RegexRule("^outthink$", 3, "ought", 0), 10150 RegexRule("^outgo$", 2, "went", 0), 10151 RegexRule("^overbear$", 3, "orne", 0), 10152 RegexRule("^overbuild$", 3, "ilt", 0), 10153 RegexRule("^overcome$", 3, "ame", 0), 10154 RegexRule("^overfly$", 2, "lew", 0), 10155 RegexRule("^overhear$", 2, "ard", 0), 10156 RegexRule("^overlie$", 2, "ain", 0), 10157 RegexRule("^overrun$", 3, "ran", 0), 10158 RegexRule("^override$", 1, "den", 0), 10159 RegexRule("^overshoot$", 4, "hot", 0), 10160 RegexRule("^overwind$", 3, "ound", 0), 10161 RegexRule("^overwrite$", 1, "ten", 0), 10162 RegexRule("^run$", 3, "ran", 0), 10163 RegexRule("^rebuild$", 3, "ilt", 0), 10164 RegexRule("^red$", 3, "red", 0), 10165 RegexRule("^redo$", 1, "one", 0), 10166 RegexRule("^remake$", 3, "ade", 0), 10167 RegexRule("^rerun$", 3, "ran", 0), 10168 RegexRule("^resit$", 3, "sat", 0), 10169 RegexRule("^rethink$", 3, "ought", 0), 10170 RegexRule("^rewind$", 3, "ound", 0), 10171 RegexRule("^rewrite$", 1, "ten", 0), 10172 RegexRule("^ride$", 1, "den", 0), 10173 RegexRule("^reeve$", 4, "ove", 0), 10174 RegexRule("^sit$", 3, "sat", 0), 10175 RegexRule("^shoe$", 3, "hod", 0), 10176 RegexRule("^shine$", 3, "one", 0), 10177 RegexRule("^shoot$", 4, "hot", 0), 10178 RegexRule("^ski$", 1, "i'd", 0), 10179 RegexRule("^slide$", 1, "den", 0), 10180 RegexRule("^smite$", 1, "ten", 0), 10181 RegexRule("^seek$", 3, "ought", 0), 10182 RegexRule("^spit$", 3, "pat", 0), 10183 RegexRule("^speed$", 4, "ped", 0), 10184 RegexRule("^spellbind$", 3, "ound", 0), 10185 RegexRule("^spoil$", 2, "ilt", 0), 10186 RegexRule("^spotlight$", 5, "lit", 0), 10187 RegexRule("^spin$", 3, "pun", 0), 10188 RegexRule("^steal$", 3, "olen", 0), 10189 RegexRule("^stand$", 3, "ood", 0), 10190 RegexRule("^stave$", 3, "ove", 0), 10191 RegexRule("^stride$", 1, "den", 0), 10192 RegexRule("^strike$", 3, "uck", 0), 10193 RegexRule("^stick$", 3, "uck", 0), 10194 RegexRule("^swell$", 3, "ollen", 0), 10195 RegexRule("^swim$", 3, "wum", 0), 10196 RegexRule("^teach$", 4, "aught", 0), 10197 RegexRule("^think$", 3, "ought", 0), 10198 RegexRule("^tread$", 3, "odden", 0), 10199 RegexRule("^typewrite$", 1, "ten", 0), 10200 RegexRule("^unbind$", 3, "ound", 0), 10201 RegexRule("^underbuy$", 2, "ought", 0), 10202 RegexRule("^undergird$", 3, "irt", 0), 10203 RegexRule("^undergo$", 1, "one", 0), 10204 RegexRule("^underlie$", 2, "ain", 0), 10205 RegexRule("^undershoot$", 4, "hot", 0), 10206 RegexRule("^understand$", 3, "ood", 0), 10207 RegexRule("^unfreeze$", 4, "ozen", 0), 10208 RegexRule("^unlearn", 0, "t", 0), 10209 RegexRule("^unmake$", 3, "ade", 0), 10210 RegexRule("^unreeve$", 4, "ove", 0), 10211 RegexRule("^unstick$", 3, "uck", 0), 10212 RegexRule("^unteach$", 4, "aught", 0), 10213 RegexRule("^unthink$", 3, "ought", 0), 10214 RegexRule("^untread$", 3, "odden", 0), 10215 RegexRule("^unwind$", 3, "ound", 0), 10216 RegexRule("^upbuild$", 1, "t", 0), 10217 RegexRule("^uphold$", 3, "eld", 0), 10218 RegexRule("^upheave$", 4, "ove", 0), 10219 RegexRule("^waylay$", 2, "ain", 0), 10220 RegexRule("^whipsaw$", 2, "awn", 0), 10221 RegexRule("^withhold$", 3, "eld", 0), 10222 RegexRule("^withstand$", 3, "ood", 0), 10223 RegexRule("^win$", 3, "won", 0), 10224 RegexRule("^wind$", 3, "ound", 0), 10225 RegexRule("^weave$", 4, "oven", 0), 10226 RegexRule("^write$", 1, "ten", 0), 10227 RegexRule("^trek$", 1, "cked", 0), 10228 RegexRule("^ko$", 1, "o'd", 0), 10229 RegexRule("^win$", 2, "on", 0), 10230 10231 // Null past forms 10232 RegexRule( 10233 "^" 10234 + VERBAL_PREFIX 10235 + "?(cast|thrust|typeset|cut|bid|upset|wet|bet|cut|hit|hurt|inset|let|cost|burst|beat|beset|set|upset|hit|offset|put|quit|" 10236 + "wed|typeset|wed|spread|split|slit|read|run|shut|shed)$", 0, 10237 "", 0) ], 10238 10239 PAST_TENSE_RULES = [ 10240 RegexRule("^(reduce)$", 0, "d", 0), 10241 RegexRule("e$", 0, "d", 1), 10242 RegexRule("^" + VERBAL_PREFIX + "?[pls]ay$", 1, "id", 1), 10243 RegexRule(CONS + "y$", 1, "ied", 1), 10244 RegexRule("^(fling|cling|hang)$", 3, "ung", 0), 10245 RegexRule("(([sfc][twlp]?r?|w?r)ing)$", 3, "ang", 1), 10246 RegexRule("^" + VERBAL_PREFIX + "?(bend|spend|send|lend|spend)$", 1, "t", 0), 10247 RegexRule("^" + VERBAL_PREFIX + "?lie$", 2, "ay", 0), 10248 RegexRule("^" + VERBAL_PREFIX + "?(weep|sleep|sweep|creep|keep)$", 2, "pt", 10249 0), 10250 RegexRule("^" + VERBAL_PREFIX + "?(sell|tell)$", 3, "old", 0), 10251 RegexRule("^" + VERBAL_PREFIX + "?do$", 1, "id", 0), 10252 RegexRule("^" + VERBAL_PREFIX + "?dig$", 2, "ug", 0), 10253 RegexRule("^behave$", 0, "d", 0), 10254 RegexRule("^(have)$", 2, "d", 0), 10255 RegexRule("(sink|drink)$", 3, "ank", 0), 10256 RegexRule("^swing$", 3, "ung", 0), 10257 RegexRule("^be$", 2, "was", 0), 10258 RegexRule("^outfight$", 4, "ought", 0), 10259 RegexRule("^tarmac", 0, "ked", 0), 10260 RegexRule("^abide$", 3, "ode", 0), 10261 RegexRule("^aby$", 1, "ought", 0), 10262 RegexRule("^become$", 3, "ame", 0), 10263 RegexRule("^begird$", 3, "irt", 0), 10264 RegexRule("^outlie$", 2, "ay", 0), 10265 RegexRule("^rebind$", 3, "ound", 0), 10266 RegexRule("^shit$", 3, "hat", 0), 10267 RegexRule("^bereave$", 4, "eft", 0), 10268 RegexRule("^foreswear$", 3, "ore", 0), 10269 RegexRule("^bename$", 3, "empt", 0), 10270 RegexRule("^beseech$", 4, "ought", 0), 10271 RegexRule("^bethink$", 3, "ought", 0), 10272 RegexRule("^bleed$", 4, "led", 0), 10273 RegexRule("^bog-down$", 5, "ged-down", 0), 10274 RegexRule("^buy$", 2, "ought", 0), 10275 RegexRule("^bind$", 3, "ound", 0), 10276 RegexRule("^(.*)feed$", 4, "fed", 0), 10277 RegexRule("^breed$", 4, "red", 0), 10278 RegexRule("^brei$", 2, "eid", 0), 10279 RegexRule("^bring$", 3, "ought", 0), 10280 RegexRule("^build$", 3, "ilt", 0), 10281 RegexRule("^come$", 3, "ame", 0), 10282 RegexRule("^catch$", 3, "ught", 0), 10283 RegexRule("^clothe$", 5, "lad", 0), 10284 RegexRule("^crossbreed$", 4, "red", 0), 10285 RegexRule("^deal$", 2, "alt", 0), 10286 RegexRule("^dow$", 1, "ught", 0), 10287 RegexRule("^dream$", 2, "amt", 0), 10288 RegexRule("^dwell$", 3, "elt", 0), 10289 RegexRule("^enwind$", 3, "ound", 0), 10290 RegexRule("^feel$", 3, "elt", 0), 10291 RegexRule("^flee$", 3, "led", 0), 10292 RegexRule("^floodlight$", 5, "lit", 0), 10293 RegexRule("^arise$", 3, "ose", 0), 10294 RegexRule("^eat$", 3, "ate", 0), 10295 RegexRule("^awake$", 3, "oke", 0), 10296 RegexRule("^backbite$", 4, "bit", 0), 10297 RegexRule("^backslide$", 4, "lid", 0), 10298 RegexRule("^befall$", 3, "ell", 0), 10299 RegexRule("^begin$", 3, "gan", 0), 10300 RegexRule("^beget$", 3, "got", 0), 10301 RegexRule("^behold$", 3, "eld", 0), 10302 RegexRule("^bespeak$", 3, "oke", 0), 10303 RegexRule("^bestride$", 3, "ode", 0), 10304 RegexRule("^betake$", 3, "ook", 0), 10305 RegexRule("^bite$", 4, "bit", 0), 10306 RegexRule("^blow$", 3, "lew", 0), 10307 RegexRule("^bear$", 3, "ore", 0), 10308 RegexRule("^break$", 3, "oke", 0), 10309 RegexRule("^choose$", 4, "ose", 0), 10310 RegexRule("^cleave$", 4, "ove", 0), 10311 RegexRule("^countersink$", 3, "ank", 0), 10312 RegexRule("^drink$", 3, "ank", 0), 10313 RegexRule("^draw$", 3, "rew", 0), 10314 RegexRule("^drive$", 3, "ove", 0), 10315 RegexRule("^fall$", 3, "ell", 0), 10316 RegexRule("^fly$", 2, "lew", 0), 10317 RegexRule("^flyblow$", 3, "lew", 0), 10318 RegexRule("^forbid$", 2, "ade", 0), 10319 RegexRule("^forbear$", 3, "ore", 0), 10320 RegexRule("^foreknow$", 3, "new", 0), 10321 RegexRule("^foresee$", 3, "saw", 0), 10322 RegexRule("^forespeak$", 3, "oke", 0), 10323 RegexRule("^forego$", 2, "went", 0), 10324 RegexRule("^forgive$", 3, "ave", 0), 10325 RegexRule("^forget$", 3, "got", 0), 10326 RegexRule("^forsake$", 3, "ook", 0), 10327 RegexRule("^forspeak$", 3, "oke", 0), 10328 RegexRule("^forswear$", 3, "ore", 0), 10329 RegexRule("^forgo$", 2, "went", 0), 10330 RegexRule("^fight$", 4, "ought", 0), 10331 RegexRule("^find$", 3, "ound", 0), 10332 RegexRule("^freeze$", 4, "oze", 0), 10333 RegexRule("^give$", 3, "ave", 0), 10334 RegexRule("^geld$", 3, "elt", 0), 10335 RegexRule("^gen-up$", 3, "ned-up", 0), 10336 RegexRule("^ghostwrite$", 3, "ote", 0), 10337 RegexRule("^get$", 3, "got", 0), 10338 RegexRule("^grow$", 3, "rew", 0), 10339 RegexRule("^grind$", 3, "ound", 0), 10340 RegexRule("^hear$", 2, "ard", 0), 10341 RegexRule("^hold$", 3, "eld", 0), 10342 RegexRule("^hide$", 4, "hid", 0), 10343 RegexRule("^honey$", 2, "ied", 0), 10344 RegexRule("^inbreed$", 4, "red", 0), 10345 RegexRule("^indwell$", 3, "elt", 0), 10346 RegexRule("^interbreed$", 4, "red", 0), 10347 RegexRule("^interweave$", 4, "ove", 0), 10348 RegexRule("^inweave$", 4, "ove", 0), 10349 RegexRule("^ken$", 2, "ent", 0), 10350 RegexRule("^kneel$", 3, "elt", 0), 10351 RegexRule("^^know$$", 3, "new", 0), 10352 RegexRule("^leap$", 2, "apt", 0), 10353 RegexRule("^learn$", 2, "rnt", 0), 10354 RegexRule("^lead$", 4, "led", 0), 10355 RegexRule("^leave$", 4, "eft", 0), 10356 RegexRule("^light$", 5, "lit", 0), 10357 RegexRule("^lose$", 3, "ost", 0), 10358 RegexRule("^make$", 3, "ade", 0), 10359 RegexRule("^mean$", 2, "ant", 0), 10360 RegexRule("^meet$", 4, "met", 0), 10361 RegexRule("^misbecome$", 3, "ame", 0), 10362 RegexRule("^misdeal$", 2, "alt", 0), 10363 RegexRule("^misgive$", 3, "ave", 0), 10364 RegexRule("^mishear$", 2, "ard", 0), 10365 RegexRule("^mislead$", 4, "led", 0), 10366 RegexRule("^mistake$", 3, "ook", 0), 10367 RegexRule("^misunderstand$", 3, "ood", 0), 10368 RegexRule("^outbreed$", 4, "red", 0), 10369 RegexRule("^outgrow$", 3, "rew", 0), 10370 RegexRule("^outride$", 3, "ode", 0), 10371 RegexRule("^outshine$", 3, "one", 0), 10372 RegexRule("^outshoot$", 4, "hot", 0), 10373 RegexRule("^outstand$", 3, "ood", 0), 10374 RegexRule("^outthink$", 3, "ought", 0), 10375 RegexRule("^outgo$", 2, "went", 0), 10376 RegexRule("^outwear$", 3, "ore", 0), 10377 RegexRule("^overblow$", 3, "lew", 0), 10378 RegexRule("^overbear$", 3, "ore", 0), 10379 RegexRule("^overbuild$", 3, "ilt", 0), 10380 RegexRule("^overcome$", 3, "ame", 0), 10381 RegexRule("^overdraw$", 3, "rew", 0), 10382 RegexRule("^overdrive$", 3, "ove", 0), 10383 RegexRule("^overfly$", 2, "lew", 0), 10384 RegexRule("^overgrow$", 3, "rew", 0), 10385 RegexRule("^overhear$", 2, "ard", 0), 10386 RegexRule("^overpass$", 3, "ast", 0), 10387 RegexRule("^override$", 3, "ode", 0), 10388 RegexRule("^oversee$", 3, "saw", 0), 10389 RegexRule("^overshoot$", 4, "hot", 0), 10390 RegexRule("^overthrow$", 3, "rew", 0), 10391 RegexRule("^overtake$", 3, "ook", 0), 10392 RegexRule("^overwind$", 3, "ound", 0), 10393 RegexRule("^overwrite$", 3, "ote", 0), 10394 RegexRule("^partake$", 3, "ook", 0), 10395 RegexRule("^" + VERBAL_PREFIX + "?run$", 2, "an", 0), 10396 RegexRule("^ring$", 3, "ang", 0), 10397 RegexRule("^rebuild$", 3, "ilt", 0), 10398 RegexRule("^red", 0, "", 0), 10399 RegexRule("^reave$", 4, "eft", 0), 10400 RegexRule("^remake$", 3, "ade", 0), 10401 RegexRule("^resit$", 3, "sat", 0), 10402 RegexRule("^rethink$", 3, "ought", 0), 10403 RegexRule("^retake$", 3, "ook", 0), 10404 RegexRule("^rewind$", 3, "ound", 0), 10405 RegexRule("^rewrite$", 3, "ote", 0), 10406 RegexRule("^ride$", 3, "ode", 0), 10407 RegexRule("^rise$", 3, "ose", 0), 10408 RegexRule("^reeve$", 4, "ove", 0), 10409 RegexRule("^sing$", 3, "ang", 0), 10410 RegexRule("^sink$", 3, "ank", 0), 10411 RegexRule("^sit$", 3, "sat", 0), 10412 RegexRule("^see$", 3, "saw", 0), 10413 RegexRule("^shoe$", 3, "hod", 0), 10414 RegexRule("^shine$", 3, "one", 0), 10415 RegexRule("^shake$", 3, "ook", 0), 10416 RegexRule("^shoot$", 4, "hot", 0), 10417 RegexRule("^shrink$", 3, "ank", 0), 10418 RegexRule("^shrive$", 3, "ove", 0), 10419 RegexRule("^sightsee$", 3, "saw", 0), 10420 RegexRule("^ski$", 1, "i'd", 0), 10421 RegexRule("^skydive$", 3, "ove", 0), 10422 RegexRule("^slay$", 3, "lew", 0), 10423 RegexRule("^slide$", 4, "lid", 0), 10424 RegexRule("^slink$", 3, "unk", 0), 10425 RegexRule("^smite$", 4, "mit", 0), 10426 RegexRule("^seek$", 3, "ought", 0), 10427 RegexRule("^spit$", 3, "pat", 0), 10428 RegexRule("^speed$", 4, "ped", 0), 10429 RegexRule("^spellbind$", 3, "ound", 0), 10430 RegexRule("^spoil$", 2, "ilt", 0), 10431 RegexRule("^speak$", 3, "oke", 0), 10432 RegexRule("^spotlight$", 5, "lit", 0), 10433 RegexRule("^spring$", 3, "ang", 0), 10434 RegexRule("^spin$", 3, "pun", 0), 10435 RegexRule("^stink$", 3, "ank", 0), 10436 RegexRule("^steal$", 3, "ole", 0), 10437 RegexRule("^stand$", 3, "ood", 0), 10438 RegexRule("^stave$", 3, "ove", 0), 10439 RegexRule("^stride$", 3, "ode", 0), 10440 RegexRule("^strive$", 3, "ove", 0), 10441 RegexRule("^strike$", 3, "uck", 0), 10442 RegexRule("^stick$", 3, "uck", 0), 10443 RegexRule("^swim$", 3, "wam", 0), 10444 RegexRule("^swear$", 3, "ore", 0), 10445 RegexRule("^teach$", 4, "aught", 0), 10446 RegexRule("^think$", 3, "ought", 0), 10447 RegexRule("^throw$", 3, "rew", 0), 10448 RegexRule("^take$", 3, "ook", 0), 10449 RegexRule("^tear$", 3, "ore", 0), 10450 RegexRule("^transship$", 4, "hip", 0), 10451 RegexRule("^tread$", 4, "rod", 0), 10452 RegexRule("^typewrite$", 3, "ote", 0), 10453 RegexRule("^unbind$", 3, "ound", 0), 10454 RegexRule("^unclothe$", 5, "lad", 0), 10455 RegexRule("^underbuy$", 2, "ought", 0), 10456 RegexRule("^undergird$", 3, "irt", 0), 10457 RegexRule("^undershoot$", 4, "hot", 0), 10458 RegexRule("^understand$", 3, "ood", 0), 10459 RegexRule("^undertake$", 3, "ook", 0), 10460 RegexRule("^undergo$", 2, "went", 0), 10461 RegexRule("^underwrite$", 3, "ote", 0), 10462 RegexRule("^unfreeze$", 4, "oze", 0), 10463 RegexRule("^unlearn$", 2, "rnt", 0), 10464 RegexRule("^unmake$", 3, "ade", 0), 10465 RegexRule("^unreeve$", 4, "ove", 0), 10466 RegexRule("^unspeak$", 3, "oke", 0), 10467 RegexRule("^unstick$", 3, "uck", 0), 10468 RegexRule("^unswear$", 3, "ore", 0), 10469 RegexRule("^unteach$", 4, "aught", 0), 10470 RegexRule("^unthink$", 3, "ought", 0), 10471 RegexRule("^untread$", 4, "rod", 0), 10472 RegexRule("^unwind$", 3, "ound", 0), 10473 RegexRule("^upbuild$", 3, "ilt", 0), 10474 RegexRule("^uphold$", 3, "eld", 0), 10475 RegexRule("^upheave$", 4, "ove", 0), 10476 RegexRule("^uprise$", 3, "ose", 0), 10477 RegexRule("^upspring$", 3, "ang", 0), 10478 RegexRule("^go$", 2, "went", 0), 10479 RegexRule("^wiredraw$", 3, "rew", 0), 10480 RegexRule("^withdraw$", 3, "rew", 0), 10481 RegexRule("^withhold$", 3, "eld", 0), 10482 RegexRule("^withstand$", 3, "ood", 0), 10483 RegexRule("^wake$", 3, "oke", 0), 10484 RegexRule("^win$", 3, "won", 0), 10485 RegexRule("^wear$", 3, "ore", 0), 10486 RegexRule("^wind$", 3, "ound", 0), 10487 RegexRule("^weave$", 4, "ove", 0), 10488 RegexRule("^write$", 3, "ote", 0), 10489 RegexRule("^trek$", 1, "cked", 0), 10490 RegexRule("^ko$", 1, "o'd", 0), 10491 RegexRule("^bid", 2, "ade", 0), 10492 RegexRule("^win$", 2, "on", 0), 10493 RegexRule("^swim", 2, "am", 0), 10494 // Null past forms 10495 RegexRule("^" + VERBAL_PREFIX 10496 + "?(cast|thrust|typeset|cut|bid|upset|wet|bet|cut|hit|hurt|inset|" 10497 + "let|cost|burst|beat|beset|set|upset|offset|put|quit|wed|typeset|" 10498 + "wed|spread|split|slit|read|run|shut|shed|lay)$", 0, "", 0) ], 10499 10500 PRESENT_TENSE_RULES = [ 10501 RegexRule("^aby$", 0, "es", 0), 10502 RegexRule("^bog-down$", 5, "s-down", 0), 10503 RegexRule("^chivy$", 1, "vies", 0), 10504 RegexRule("^gen-up$", 3, "s-up", 0), 10505 RegexRule("^prologue$", 3, "gs", 0), 10506 RegexRule("^picknic$", 0, "ks", 0), 10507 //RegexRule("^swim$", 0, "s", 0), 10508 RegexRule("^ko$", 0, "'s", 0), 10509 RegexRule("[osz]$", 0, "es", 1), 10510 RegexRule("^have$", 2, "s", 0), 10511 RegexRule(CONS + "y$", 1, "ies", 1), 10512 RegexRule("^be$", 2, "is"), 10513 RegexRule("([zsx]|ch|sh)$", 0, "es", 1) 10514 ], 10515 10516 VERB_CONS_DOUBLING = [ "abat", "abet", "abhor", "abut", "accur", "acquit", "adlib", 10517 "admit", "aerobat", "aerosol", "agendaset", "allot", "alot", "anagram", 10518 "annul", "appal", "apparel", "armbar", "aver", "babysit", "airdrop", "appal", 10519 "blackleg", "bobsled", "bur", "chum", "confab", "counterplot", "curet", "dib", 10520 "backdrop", "backfil", "backflip", "backlog", "backpedal", "backslap", 10521 "backstab", "bag", "balfun", "ballot", "ban", "bar", "barbel", "bareleg", 10522 "barrel", "bat", "bayonet", "becom", "bed", "bedevil", "bedwet", "beenhop", 10523 "befit", "befog", "beg", "beget", "begin", "bejewel", "bemedal", "benefit", 10524 "benum", "beset", "besot", "bestir", "bet", "betassel", "bevel", "bewig", 10525 "bib", "bid", "billet", "bin", "bip", "bit", "bitmap", "blab", "blag", "blam", 10526 "blan", "blat", "bles", "blim", "blip", "blob", "bloodlet", "blot", "blub", 10527 "blur", "bob", "bodypop", "bog", "booby-trap", "boobytrap", "booksel", 10528 "bootleg", "bop", "bot", "bowel", "bracket", "brag", "brig", "brim", "bud", 10529 "buffet", "bug", "bullshit", "bum", "bun", "bus", "but", "cab", "cabal", "cam", 10530 "can", "cancel", "cap", "caracol", "caravan", "carburet", "carnap", "carol", 10531 "carpetbag", "castanet", "cat", "catcal", "catnap", "cavil", "chan", "chanel", 10532 "channel", "chap", "char", "chargecap", "chat", "chin", "chip", "chir", 10533 "chirrup", "chisel", "chop", "chug", "chur", "clam", "clap", "clearcut", 10534 "clip", "clodhop", "clog", "clop", "closet", "clot", "club", "co-occur", 10535 "co-program", "co-refer", "co-run", "co-star", "cob", "cobweb", "cod", "coif", 10536 "com", "combat", "comit", "commit", "compel", "con", "concur", "confer", 10537 "confiscat", "control", "cop", "coquet", "coral", "corbel", "corral", "cosset", 10538 "cotransmit", "councel", "council", "counsel", "court-martial", "crab", "cram", 10539 "crap", "crib", "crop", "crossleg", "cub", "cudgel", "cum", "cun", "cup", 10540 "cut", "dab", "dag", "dam", "dan", "dap", "daysit", "de-control", "de-gazet", 10541 "de-hul", "de-instal", "de-mob", "de-program", "de-rig", "de-skil", "deadpan", 10542 "debag", "debar", "log", "decommit", "decontrol", "defer", "defog", "deg", 10543 "degas", "deinstal", "demit", "demob", "demur", "den", "denet", "depig", 10544 "depip", "depit", "der", "deskil", "deter", "devil", "diagram", "dial", "dig", 10545 "dim", "din", "dip", "disbar", "disbud", "discomfit", "disembed", "disembowel", 10546 "dishevel", "disinter", "dispel", "disprefer", "distil", "dog", "dognap", 10547 "don", "doorstep", "dot", "dowel", "drag", "drat", "driftnet", "distil", 10548 "egotrip", "enrol", "enthral", "extol", "fulfil", "gaffe", "golliwog", "idyl", 10549 "inspan", "drip", "drivel", "drop", "drub", "drug", "drum", "dub", "duel", 10550 "dun", "dybbuk", "earwig", "eavesdrop", "ecolabel", "eitherspigot", 10551 "electroblot", "embed", "emit", "empanel", "enamel", "endlabel", "endtrim", 10552 "enrol", "enthral", "entrammel", "entrap", "enwrap", "equal", "equip", "estop", 10553 "exaggerat", "excel", "expel", "extol", "fag", "fan", "farewel", "fat", 10554 "featherbed", "feget", "fet", "fib", "fig", "fin", "fingerspel", "fingertip", 10555 "fit", "flab", "flag", "flap", "flip", "flit", "flog", "flop", "fob", "focus", 10556 "fog", "footbal", "footslog", "fop", "forbid", "forget", "format", 10557 "fortunetel", "fot", "foxtrot", "frag", "freefal", "fret", "frig", "frip", 10558 "frog", "frug", "fuel", "fufil", "fulfil", "fullyfit", "fun", "funnel", "fur", 10559 "furpul", "gab", "gad", "gag", "gam", "gambol", "gap", "garot", "garrot", 10560 "gas", "gat", "gel", "gen", "get", "giftwrap", "gig", "gimbal", "gin", "glam", 10561 "glenden", "glendin", "globetrot", "glug", "glut", "gob", "goldpan", "goostep", 10562 "gossip", "grab", "gravel", "grid", "grin", "grip", "grit", "groundhop", 10563 "grovel", "grub", "gum", "gun", "gunrun", "gut", "gyp", "haircut", "ham", 10564 "han", "handbag", "handicap", "handknit", "handset", "hap", "hareleg", "hat", 10565 "headbut", "hedgehop", "hem", "hen", "hiccup", "highwal", "hip", "hit", 10566 "hobnob", "hog", "hop", "horsewhip", "hostel", "hot", "hotdog", "hovel", "hug", 10567 "hum", "humbug", "hup", "hushkit", "hut", "illfit", "imbed", "immunblot", 10568 "immunoblot", "impannel", "impel", "imperil", "incur", "infer", "infil", 10569 "inflam", "initial", "input", "inset", "instil", "inter", "interbed", 10570 "intercrop", "intercut", "interfer", "instal", "instil", "intermit", "japan", 10571 "jug", "kris", "manumit", "mishit", "mousse", "mud", "interwar", "jab", "jag", 10572 "jam", "jar", "jawdrop", "jet", "jetlag", "jewel", "jib", "jig", "jitterbug", 10573 "job", "jog", "jog-trot", "jot", "jut", "ken", "kennel", "kid", "kidnap", 10574 "kip", "kissogram", "kit", "knap", "kneecap", "knit", "knob", "knot", "kor", 10575 "label", "lag", "lam", "lap", "lavel", "leafcut", "leapfrog", "leg", "lem", 10576 "lep", "let", "level", "libel", "lid", "lig", "lip", "lob", "log", "lok", 10577 "lollop", "longleg", "lop", "lowbal", "lug", "mackerel", "mahom", "man", "map", 10578 "mar", "marshal", "marvel", "mat", "matchwin", "metal", "micro-program", 10579 "microplan", "microprogram", "milksop", "mis-cal", "mis-club", "mis-spel", 10580 "miscal", "mishit", "mislabel", "mit", "mob", "mod", "model", "mohmam", 10581 "monogram", "mop", "mothbal", "mug", "multilevel", "mum", "nab", "nag", "nan", 10582 "nap", "net", "nightclub", "nightsit", "nip", "nod", "nonplus", "norkop", 10583 "nostril", "not", "nut", "nutmeg", "occur", "ocur", "offput", "offset", "omit", 10584 "ommit", "onlap", "out-general", "out-gun", "out-jab", "out-plan", "out-pol", 10585 "out-pul", "out-put", "out-run", "out-sel", "outbid", "outcrop", "outfit", 10586 "outgas", "outgun", "outhit", "outjab", "outpol", "output", "outrun", 10587 "outship", "outshop", "outsin", "outstrip", "outswel", "outspan", "overcrop", 10588 "pettifog", "photostat", "pouf", "preset", "prim", "pug", "ret", "rosin", 10589 "outwit", "over-commit", "over-control", "over-fil", "over-fit", "over-lap", 10590 "over-model", "over-pedal", "over-pet", "over-run", "over-sel", "over-step", 10591 "over-tip", "over-top", "overbid", "overcal", "overcommit", "overcontrol", 10592 "overcrap", "overdub", "overfil", "overhat", "overhit", "overlap", "overman", 10593 "overplot", "overrun", "overshop", "overstep", "overtip", "overtop", "overwet", 10594 "overwil", "pad", "paintbal", "pan", "panel", "paperclip", "par", "parallel", 10595 "parcel", "partiescal", "pat", "patrol", "pedal", "peewit", "peg", "pen", 10596 "pencil", "pep", "permit", "pet", "petal", "photoset", "phototypeset", "phut", 10597 "picket", "pig", "pilot", "pin", "pinbal", "pip", "pipefit", "pipet", "pit", 10598 "plan", "plit", "plod", "plop", "plot", "plug", "plumet", "plummet", "pod", 10599 "policyset", "polyfil", "ponytrek", "pop", "pot", "pram", "prebag", 10600 "predistil", "predril", "prefer", "prefil", "preinstal", "prep", "preplan", 10601 "preprogram", "prizewin", "prod", "profer", "prog", "program", "prop", 10602 "propel", "pub", "pummel", "pun", "pup", "pushfit", "put", "quarel", "quarrel", 10603 "quickskim", "quickstep", "quickwit", "quip", "quit", "quivertip", "quiz", 10604 "rabbit", "rabit", "radiolabel", "rag", "ram", "ramrod", "rap", "rat", 10605 "ratecap", "ravel", "re-admit", "re-cal", "re-cap", "re-channel", "re-dig", 10606 "re-dril", "re-emit", "re-fil", "re-fit", "re-flag", "re-format", "re-fret", 10607 "re-hab", "re-instal", "re-inter", "re-lap", "re-let", "re-map", "re-metal", 10608 "re-model", "re-pastel", "re-plan", "re-plot", "re-plug", "re-pot", 10609 "re-program", "re-refer", "re-rig", "re-rol", "re-run", "re-sel", "re-set", 10610 "re-skin", "re-stal", "re-submit", "re-tel", "re-top", "re-transmit", 10611 "re-trim", "re-wrap", "readmit", "reallot", "rebel", "rebid", "rebin", "rebut", 10612 "recap", "rechannel", "recommit", "recrop", "recur", "recut", "red", "redril", 10613 "refer", "refit", "reformat", "refret", "refuel", "reget", "regret", "reinter", 10614 "rejig", "rekit", "reknot", "relabel", "relet", "rem", "remap", "remetal", 10615 "remit", "remodel", "reoccur", "rep", "repel", "repin", "replan", "replot", 10616 "repol", "repot", "reprogram", "rerun", "reset", "resignal", "resit", "reskil", 10617 "resubmit", "retransfer", "retransmit", "retro-fit", "retrofit", "rev", 10618 "revel", "revet", "rewrap", "rib", "richochet", "ricochet", "rid", "rig", 10619 "rim", "ringlet", "rip", "rit", "rival", "rivet", "roadrun", "rob", "rocket", 10620 "rod", "roset", "rot", "rowel", "rub", "run", "runnel", "rut", "sab", "sad", 10621 "sag", "sandbag", "sap", "scab", "scalpel", "scam", "scan", "scar", "scat", 10622 "schlep", "scrag", "scram", "shall", "sled", "smut", "stet", "sulfuret", 10623 "trepan", "unrip", "unstop", "whir", "whop", "wig", "scrap", "scrat", "scrub", 10624 "scrum", "scud", "scum", "scur", "semi-control", "semi-skil", "semi-skim", 10625 "semiskil", "sentinel", "set", "shag", "sham", "shed", "shim", "shin", "ship", 10626 "shir", "shit", "shlap", "shop", "shopfit", "shortfal", "shot", "shovel", 10627 "shred", "shrinkwrap", "shrivel", "shrug", "shun", "shut", "side-step", 10628 "sideslip", "sidestep", "signal", "sin", "sinbin", "sip", "sit", "skid", 10629 "skim", "skin", "skip", "skir", "skrag", "slab", "slag", "slam", "slap", 10630 "slim", "slip", "slit", "slob", "slog", "slop", "slot", "slowclap", "slug", 10631 "slum", "slur", "smit", "snag", "snap", "snip", "snivel", "snog", "snorkel", 10632 "snowcem", "snub", "snug", "sob", "sod", "softpedal", "son", "sop", "spam", 10633 "span", "spar", "spat", "spiderweb", "spin", "spiral", "spit", "splat", 10634 "split", "spot", "sprag", "spraygun", "sprig", "springtip", "spud", "spur", 10635 "squat", "squirrel", "stab", "stag", "star", "stem", "sten", "stencil", "step", 10636 "stir", "stop", "storytel", "strap", "strim", "strip", "strop", "strug", 10637 "strum", "strut", "stub", "stud", "stun", "sub", "subcrop", "sublet", "submit", 10638 "subset", "suedetrim", "sum", "summit", "sun", "suntan", "sup", "super-chil", 10639 "superad", "swab", "swag", "swan", "swap", "swat", "swig", "swim", "swivel", 10640 "swot", "tab", "tag", "tan", "tansfer", "tap", "tar", "tassel", "tat", "tefer", 10641 "teleshop", "tendril", "terschel", "th'strip", "thermal", "thermostat", "thin", 10642 "throb", "thrum", "thud", "thug", "tightlip", "tin", "tinsel", "tip", "tittup", 10643 "toecap", "tog", "tom", "tomorrow", "top", "tot", "total", "towel", "traget", 10644 "trainspot", "tram", "trammel", "transfer", "tranship", "transit", "transmit", 10645 "transship", "trap", "travel", "trek", "trendset", "trim", "trip", "tripod", 10646 "trod", "trog", "trot", "trousseaushop", "trowel", "trup", "tub", "tug", 10647 "tunnel", "tup", "tut", "twat", "twig", "twin", "twit", "typeset", "tyset", 10648 "un-man", "unban", "unbar", "unbob", "uncap", "unclip", "uncompel", "undam", 10649 "under-bil", "under-cut", "under-fit", "under-pin", "under-skil", "underbid", 10650 "undercut", "underlet", "underman", "underpin", "unfit", "unfulfil", "unknot", 10651 "unlip", "unlywil", "unman", "unpad", "unpeg", "unpin", "unplug", "unravel", 10652 "unrol", "unscrol", "unsnap", "unstal", "unstep", "unstir", "untap", "unwrap", 10653 "unzip", "up", "upset", "upskil", "upwel", "ven", "verbal", "vet", "victual", 10654 "vignet", "wad", "wag", "wainscot", "wan", "war", "water-log", "waterfal", 10655 "waterfil", "waterlog", "weasel", "web", "wed", "wet", "wham", "whet", "whip", 10656 "whir", "whiteskin", "whiz", "whup", "wildcat", "win", "windmil", "wit", 10657 "woodchop", "woodcut", "wor", "worship", "wrap", "wiretap", "yen", "yak", 10658 "yap", "yarnspin", "yip", "yodel", "zag", "zap", "zig", "zig-zag", "zigzag", 10659 "zip", "ztrip", "hand-bag", "hocus", "hocus-pocus" ], 10660 10661 PAST_PARTICIPLE_RULESET = { 10662 name : "PAST_PARTICIPLE", 10663 defaultRule : RegexRule(ANY_STEM, 0, "ed", 2), 10664 rules : PAST_PARTICIPLE_RULES, 10665 doubling : false 10666 }, 10667 10668 PRESENT_PARTICIPLE_RULESET = { 10669 name : "ING_FORM", 10670 defaultRule : RegexRule(ANY_STEM, 0, "ing", 2), 10671 rules : ING_FORM_RULES, 10672 doubling : false 10673 }, 10674 10675 PAST_TENSE_RULESET = { 10676 name : "PAST_TENSE", 10677 defaultRule : RegexRule(ANY_STEM, 0, "ed", 2), 10678 rules : PAST_TENSE_RULES, 10679 doubling : false 10680 }, 10681 10682 PRESENT_TENSE_RULESET = { 10683 name : "PRESENT_TENSE", 10684 defaultRule : RegexRule(ANY_STEM, 0, "s", 2), 10685 rules : PRESENT_TENSE_RULES, 10686 doubling : true 10687 }; 10688 10689 ////////////////////////////////////////////////////////////////////////////////// 10690 //////// Utility functions 10691 ////////////////////////////////////////////////////////////////////////////////// 10692 10693 function isNum(n) { 10694 10695 return !isNaN(parseFloat(n)) && isFinite(n); 10696 } 10697 10698 // Array helpers //////////////////////////////////////////////////////////////// 10699 10700 function shuffle(oldArray) { 10701 var newArray = oldArray.slice(); 10702 var len = newArray.length; 10703 var i = len; 10704 while (i--) { 10705 var p = parseInt(Math.random()*len); 10706 var t = newArray[i]; 10707 newArray[i] = newArray[p]; 10708 newArray[p] = t; 10709 } 10710 return newArray; 10711 } 10712 10713 // Array Remove - from John Resig (MIT Licensed) 10714 function remove(array, from, to) { 10715 10716 // remove? only used once 10717 var rest = array.slice((to || from) + 1 || array.length); 10718 array.length = from < 0 ? array.length + from : from; 10719 return array.push.apply(array, rest); 10720 } 10721 10722 function insert(array, item, idx) { 10723 10724 array.slice(idx,0,item); 10725 return array; 10726 } 10727 10728 function removeFromArray(items, element) { 10729 10730 while (items.indexOf(element) !== -1) { 10731 items.splice(items.indexOf(element), 1); 10732 } 10733 } 10734 10735 function inArray(array, val) { 10736 10737 var i = array.length; 10738 while (i--) { 10739 if (array[i] == val) { 10740 return true; 10741 } 10742 } 10743 return false; 10744 } 10745 10746 // ////////////////////////////////////////////////////////////// 10747 10748 function dump(obj) { 10749 10750 var properties = ""; 10751 for ( var propertyName in obj) { 10752 10753 properties += propertyName + ": "; 10754 10755 // Check if its NOT a function 10756 if (!(obj[propertyName] instanceof Function)) { 10757 properties += obj.propertyName; 10758 } else { 10759 properties += "function()"; 10760 } 10761 properties += ", "; 10762 } 10763 return properties; 10764 } 10765 10766 function asList(array) { 10767 10768 var s="["; 10769 for ( var i = 0; i < array.length; i++) { 10770 var el = array[i]; 10771 if (array[i] instanceof Array) 10772 el = asList(array[i]); 10773 s += el; 10774 if (i < array.length-1) s += ", "; 10775 } 10776 return s+"]"; 10777 } 10778 10779 function isNull(obj) { 10780 10781 return (typeof obj === 'undefined' || obj === null); 10782 } 10783 10784 function err(msg) { 10785 10786 (!RiTa.SILENT) && console && console.trace(this); 10787 throw Error("[RiTa] " + msg); 10788 } 10789 10790 function warn() { 10791 10792 if (RiTa.SILENT || !console) return; 10793 for ( var i = 0; i < arguments.length; i++) { 10794 console.warn(arguments[i]); 10795 } 10796 } 10797 10798 function log() { 10799 10800 if (RiTa.SILENT || !console) return; 10801 for ( var i = 0; i < arguments.length; i++) 10802 console.log(arguments[i]); 10803 } 10804 10805 function strOk(str) { 10806 10807 return (typeof str === S && str.length > 0); 10808 } 10809 10810 function trim(str) { 10811 10812 // faster version from: http://blog.stevenlevithan.com/archives/faster-trim-javascript 10813 return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); 10814 //return str.replace(/^\s*(\S*(?:\s+\S+)*)\s*$/, "$1"); 10815 } 10816 10817 function last(word) { // last char of string 10818 10819 if (!word || !word.length) return E; 10820 return word.charAt(word.length-1); 10821 } 10822 10823 function extend(l1,l2) { // python extend 10824 10825 for (var i = 0; i < l2.length; i++) { 10826 10827 l1.push(l2[i]); 10828 } 10829 } 10830 10831 function replaceAll(theText, replace, withThis) { 10832 10833 return theText.replace(new RegExp(replace, 'g'), withThis); 10834 } 10835 10836 function endsWith(str, ending) { // test this!!! 10837 10838 return str.slice(-ending.length) == ending; 10839 } 10840 10841 function startsWith(text, substr) { 10842 10843 if (!Type.is(text,S)) return false; 10844 return text.slice(0, substr.length) == substr; 10845 } 10846 10847 function equalsIgnoreCase(str1, str2) { 10848 10849 return (str1.toLowerCase() === str2.toLowerCase()); 10850 } 10851 10852 function makeClass() { // By John Resig (MIT Licensed) 10853 10854 return function(args) { 10855 10856 if (this instanceof arguments.callee) { 10857 10858 if (typeof this.initialize == "function") { 10859 10860 this.initialize.apply(this, args && args.callee ? args : arguments); 10861 } 10862 } 10863 else { 10864 return new arguments.callee(arguments); 10865 } 10866 }; 10867 } 10868 10869 function parseColor() { 10870 10871 var a = arguments, len = a.length; 10872 10873 //log('parseColor:'+len); 10874 10875 var color = { r: 0, g: 0, b: 0, a: 255 }; 10876 10877 if (!len) return color; 10878 10879 if (len == 1 && Type.is(a[0],A)) { 10880 return parseColor.apply(this, a[0]); 10881 } 10882 10883 if (len >= 3) { 10884 color.r = a[0]; 10885 color.g = a[1]; 10886 color.b = a[2]; 10887 } 10888 if (len == 4) { 10889 color.a = a[3]; 10890 } 10891 if (len <= 2) { 10892 color.r = a[0]; 10893 color.g = a[0]; 10894 color.b = a[0]; 10895 } 10896 if (len == 2) { 10897 color.a = a[1]; 10898 } 10899 10900 return color; 10901 } 10902 10903 10904 function addSpaces(str, num) { 10905 10906 for ( var i = 0; i < num; i++) 10907 str += " "; 10908 return str; 10909 } 10910 10911 LetterToSound.RULES = [ 10912 10913 'TOTAL 13100', 10914 'INDEX 0 a', 10915 'STATE 4 r 2 1', 10916 'STATE 6 0 4 3', 10917 'STATE 3 e 6 5', 10918 'STATE 4 u 8 7', 10919 'STATE 4 y 10 9', 10920 'STATE 3 w 12 11', 10921 'STATE 5 t 14 13', 10922 'STATE 3 e 16 15', 10923 'STATE 3 e 18 17', 10924 'STATE 4 # 20 19', 10925 'STATE 3 w 22 21', 10926 'STATE 1 0 24 23', 10927 'STATE 5 e 26 25', 10928 'STATE 5 n 28 27', 10929 'STATE 2 h 29 28', 10930 'STATE 5 e 31 30', 10931 'STATE 2 r 33 32', 10932 'STATE 5 e 35 34', 10933 'STATE 5 t 28 36', 10934 'STATE 3 e 38 37', 10935 'STATE 3 e 40 39', 10936 'STATE 2 c 42 41', 10937 'STATE 2 a 43 42', 10938 'STATE 5 y 45 44', 10939 'STATE 5 r 47 46', 10940 'STATE 5 d 49 48', 10941 'PHONE eh1', 10942 'STATE 5 m 51 50', 10943 'PHONE epsilon', 10944 'PHONE aa1', 10945 'STATE 4 i 53 52', 10946 'STATE 4 g 55 54', 10947 'STATE 4 n 57 56', 10948 'STATE 1 # 59 58', 10949 'STATE 5 g 61 60', 10950 'STATE 1 0 63 62', 10951 'STATE 1 u 29 64', 10952 'STATE 3 o 28 65', 10953 'STATE 4 u 67 66', 10954 'STATE 3 a 29 68', 10955 'STATE 2 l 68 69', 10956 'STATE 1 # 42 70', 10957 'PHONE ey1', 10958 'STATE 1 l 72 71', 10959 'STATE 5 i 74 73', 10960 'STATE 3 n 26 75', 10961 'STATE 5 a 77 76', 10962 'STATE 2 # 79 78', 10963 'STATE 5 i 26 80', 10964 'STATE 1 0 82 81', 10965 'STATE 2 w 28 83', 10966 'STATE 2 r 29 84', 10967 'STATE 5 i 86 85', 10968 'STATE 5 r 88 87', 10969 'STATE 6 # 90 89', 10970 'STATE 1 0 92 91', 10971 'STATE 4 b 94 93', 10972 'STATE 1 # 96 95', 10973 'STATE 4 k 98 97', 10974 'STATE 5 t 100 99', 10975 'STATE 1 0 102 101', 10976 'STATE 2 # 104 103', 10977 'STATE 1 # 63 105', 10978 'PHONE aw1', 10979 'STATE 6 e 107 106', 10980 'STATE 4 w 109 108', 10981 'STATE 4 d 28 110', 10982 'STATE 1 o 111 107', 10983 'PHONE ax', 10984 'STATE 2 y 68 112', 10985 'STATE 2 p 42 113', 10986 'STATE 1 t 72 42', 10987 'PHONE ey', 10988 'STATE 5 e 115 114', 10989 'STATE 6 # 29 116', 10990 'STATE 2 c 26 117', 10991 'STATE 5 i 119 118', 10992 'STATE 3 p 26 120', 10993 'STATE 6 o 100 28', 10994 'STATE 3 n 26 121', 10995 'STATE 1 0 82 122', 10996 'STATE 1 # 82 123', 10997 'PHONE ao1', 10998 'STATE 1 s 125 124', 10999 'STATE 1 # 28 126', 11000 'STATE 4 y 128 127', 11001 'STATE 6 o 130 129', 11002 'STATE 5 n 132 131', 11003 'STATE 3 z 133 26', 11004 'STATE 3 w 135 134', 11005 'STATE 4 t 137 136', 11006 'STATE 1 # 139 138', 11007 'STATE 3 m 100 140', 11008 'STATE 1 i 142 141', 11009 'STATE 1 # 28 68', 11010 'STATE 1 c 28 143', 11011 'STATE 5 d 100 144', 11012 'STATE 4 t 146 145', 11013 'STATE 1 b 42 28', 11014 'STATE 6 n 148 147', 11015 'PHONE ae1', 11016 'STATE 1 # 150 149', 11017 'STATE 3 c 152 151', 11018 'STATE 2 n 154 153', 11019 'STATE 3 l 100 82', 11020 'PHONE aw', 11021 'STATE 1 o 111 155', 11022 'PHONE ow1', 11023 'STATE 1 # 157 156', 11024 'STATE 3 l 82 158', 11025 'STATE 4 n 160 159', 11026 'PHONE ow', 11027 'STATE 1 c 28 68', 11028 'STATE 1 l 162 161', 11029 'STATE 5 r 164 163', 11030 'STATE 6 l 166 165', 11031 'STATE 6 z 28 167', 11032 'STATE 2 e 26 168', 11033 'STATE 5 e 170 169', 11034 'STATE 6 s 172 171', 11035 'STATE 6 # 29 173', 11036 'STATE 3 h 175 174', 11037 'STATE 5 # 28 176', 11038 'STATE 1 r 82 28', 11039 'STATE 5 l 178 177', 11040 'STATE 6 # 179 126', 11041 'PHONE ih1', 11042 'STATE 2 # 181 180', 11043 'STATE 5 a 183 182', 11044 'STATE 6 # 29 184', 11045 'STATE 4 t 186 185', 11046 'STATE 5 l 188 187', 11047 'STATE 3 t 190 189', 11048 'PHONE ay', 11049 'STATE 6 d 192 191', 11050 'STATE 4 t 194 193', 11051 'STATE 3 i 196 195', 11052 'STATE 3 u 198 197', 11053 'STATE 3 i 28 199', 11054 'STATE 2 s 42 200', 11055 'STATE 6 r 42 201', 11056 'STATE 1 t 203 202', 11057 'STATE 2 n 42 204', 11058 'STATE 1 r 68 205', 11059 'STATE 2 d 100 28', 11060 'STATE 5 o 28 206', 11061 'STATE 1 c 42 207', 11062 'STATE 5 e 28 208', 11063 'STATE 4 g 42 28', 11064 'STATE 5 l 210 209', 11065 'STATE 3 h 82 211', 11066 'STATE 2 # 213 212', 11067 'STATE 6 a 82 214', 11068 'STATE 1 # 82 215', 11069 'PHONE ao', 11070 'STATE 2 b 217 216', 11071 'STATE 4 n 219 218', 11072 'STATE 3 a 29 220', 11073 'STATE 1 e 154 82', 11074 'STATE 2 n 222 221', 11075 'STATE 1 c 28 223', 11076 'STATE 3 d 42 224', 11077 'STATE 3 d 225 72', 11078 'STATE 5 t 227 226', 11079 'STATE 2 q 82 228', 11080 'STATE 6 t 28 229', 11081 'STATE 2 c 28 230', 11082 'STATE 6 o 232 231', 11083 'STATE 3 u 26 233', 11084 'STATE 5 o 235 234', 11085 'STATE 6 e 28 236', 11086 'STATE 6 # 29 237', 11087 'STATE 2 # 238 28', 11088 'STATE 6 s 240 239', 11089 'STATE 6 y 26 241', 11090 'STATE 6 e 100 242', 11091 'STATE 2 e 28 243', 11092 'STATE 2 b 245 244', 11093 'STATE 2 p 28 246', 11094 'STATE 2 h 247 28', 11095 'STATE 1 # 249 248', 11096 'STATE 3 w 251 250', 11097 'STATE 5 o 253 252', 11098 'STATE 6 s 230 254', 11099 'STATE 6 z 256 255', 11100 'STATE 4 n 100 257', 11101 'STATE 1 0 100 258', 11102 'STATE 6 # 260 259', 11103 'STATE 3 m 261 42', 11104 'STATE 1 a 263 262', 11105 'STATE 2 s 42 264', 11106 'STATE 6 s 266 265', 11107 'STATE 4 t 268 267', 11108 'STATE 4 l 68 42', 11109 'STATE 2 t 29 82', 11110 'STATE 3 o 28 269', 11111 'STATE 4 l 29 100', 11112 'STATE 3 t 42 270', 11113 'STATE 2 t 42 271', 11114 'STATE 6 n 68 272', 11115 'STATE 3 r 42 273', 11116 'STATE 6 # 42 274', 11117 'STATE 1 # 28 275', 11118 'STATE 4 t 276 28', 11119 'STATE 4 s 28 277', 11120 'STATE 2 c 68 278', 11121 'STATE 4 n 68 279', 11122 'STATE 1 t 28 280', 11123 'STATE 5 s 68 281', 11124 'STATE 6 # 283 282', 11125 'STATE 3 n 107 284', 11126 'STATE 2 c 82 285', 11127 'STATE 5 t 82 286', 11128 'STATE 5 n 82 287', 11129 'STATE 5 s 29 288', 11130 'STATE 2 e 154 289', 11131 'STATE 1 e 111 107', 11132 'STATE 5 c 107 290', 11133 'STATE 4 l 292 291', 11134 'STATE 3 m 68 293', 11135 'STATE 4 u 63 294', 11136 'STATE 1 a 28 295', 11137 'STATE 1 i 68 28', 11138 'STATE 1 # 28 296', 11139 'STATE 2 t 42 297', 11140 'STATE 2 i 72 42', 11141 'STATE 3 o 28 298', 11142 'STATE 2 q 82 299', 11143 'STATE 1 r 26 300', 11144 'STATE 1 c 302 301', 11145 'PHONE aa', 11146 'STATE 6 a 26 303', 11147 'STATE 3 s 29 304', 11148 'STATE 3 r 26 305', 11149 'STATE 5 y 307 306', 11150 'STATE 6 l 309 308', 11151 'STATE 2 # 311 310', 11152 'STATE 3 v 313 312', 11153 'STATE 3 p 28 26', 11154 'STATE 6 b 100 314', 11155 'STATE 3 h 28 29', 11156 'STATE 6 i 316 315', 11157 'STATE 6 o 26 100', 11158 'STATE 1 # 82 317', 11159 'STATE 5 c 28 318', 11160 'STATE 5 d 126 28', 11161 'STATE 1 # 319 28', 11162 'PHONE ih', 11163 'STATE 5 o 321 320', 11164 'STATE 3 o 323 322', 11165 'STATE 4 w 325 324', 11166 'STATE 4 l 327 326', 11167 'STATE 5 r 328 42', 11168 'STATE 2 # 42 329', 11169 'STATE 2 a 331 330', 11170 'STATE 6 n 333 332', 11171 'STATE 1 0 100 68', 11172 'STATE 1 0 335 334', 11173 'STATE 3 n 337 336', 11174 'STATE 5 o 28 338', 11175 'STATE 5 a 29 42', 11176 'STATE 2 e 72 42', 11177 'STATE 6 g 29 339', 11178 'STATE 3 r 42 340', 11179 'STATE 6 e 42 341', 11180 'STATE 4 k 343 342', 11181 'STATE 4 t 345 344', 11182 'STATE 3 o 28 346', 11183 'STATE 3 o 28 42', 11184 'STATE 2 a 348 347', 11185 'STATE 2 i 350 349', 11186 'STATE 1 a 42 68', 11187 'STATE 6 r 352 351', 11188 'STATE 3 l 100 68', 11189 'STATE 2 # 354 353', 11190 'STATE 2 m 42 355', 11191 'STATE 5 r 100 68', 11192 'STATE 4 l 28 68', 11193 'STATE 2 g 68 356', 11194 'STATE 4 l 28 357', 11195 'STATE 5 h 28 358', 11196 'STATE 4 p 68 359', 11197 'STATE 5 s 361 360', 11198 'STATE 5 d 107 362', 11199 'STATE 3 s 82 363', 11200 'STATE 6 e 365 364', 11201 'STATE 5 d 82 366', 11202 'STATE 5 r 368 367', 11203 'STATE 5 l 29 82', 11204 'STATE 2 o 154 369', 11205 'STATE 6 o 107 370', 11206 'STATE 4 s 372 371', 11207 'STATE 3 h 373 68', 11208 'STATE 3 i 68 374', 11209 'STATE 4 i 28 375', 11210 'STATE 4 k 28 376', 11211 'STATE 1 o 68 377', 11212 'STATE 1 c 42 378', 11213 'STATE 1 # 380 379', 11214 'STATE 1 # 29 381', 11215 'STATE 1 e 383 382', 11216 'STATE 6 # 385 384', 11217 'STATE 3 s 29 230', 11218 'STATE 6 c 387 386', 11219 'STATE 3 c 26 388', 11220 'STATE 2 i 26 389', 11221 'STATE 5 u 391 390', 11222 'STATE 6 # 26 392', 11223 'STATE 6 # 29 393', 11224 'STATE 3 p 28 394', 11225 'STATE 6 n 28 230', 11226 'STATE 3 m 230 395', 11227 'STATE 6 t 26 396', 11228 'STATE 6 e 28 26', 11229 'STATE 2 # 398 397', 11230 'STATE 3 m 400 399', 11231 'STATE 3 m 26 401', 11232 'STATE 2 h 82 402', 11233 'STATE 5 s 404 403', 11234 'STATE 6 e 28 126', 11235 'STATE 5 l 406 405', 11236 'STATE 6 # 29 407', 11237 'STATE 4 w 409 408', 11238 'STATE 2 j 29 28', 11239 'STATE 4 l 411 410', 11240 'STATE 5 a 413 412', 11241 'STATE 4 g 100 414', 11242 'STATE 6 o 288 82', 11243 'STATE 6 e 26 42', 11244 'STATE 6 # 42 415', 11245 'STATE 3 r 42 416', 11246 'STATE 6 # 29 68', 11247 'STATE 6 a 418 417', 11248 'STATE 4 t 420 419', 11249 'STATE 2 t 100 421', 11250 'STATE 4 d 42 422', 11251 'STATE 3 u 42 423', 11252 'STATE 2 i 42 424', 11253 'STATE 6 a 426 425', 11254 'STATE 2 a 26 427', 11255 'STATE 3 g 68 42', 11256 'STATE 1 u 68 428', 11257 'STATE 4 y 42 429', 11258 'STATE 3 m 42 430', 11259 'STATE 4 w 82 431', 11260 'STATE 3 u 42 432', 11261 'STATE 4 w 82 433', 11262 'STATE 1 0 42 434', 11263 'STATE 1 l 29 435', 11264 'STATE 3 n 437 436', 11265 'STATE 3 d 42 438', 11266 'STATE 6 o 42 439', 11267 'STATE 2 l 247 440', 11268 'STATE 6 n 68 42', 11269 'STATE 6 n 442 441', 11270 'STATE 1 a 444 443', 11271 'STATE 5 s 68 28', 11272 'STATE 5 t 445 28', 11273 'STATE 1 h 28 68', 11274 'STATE 4 f 68 446', 11275 'STATE 2 s 28 447', 11276 'STATE 6 t 82 448', 11277 'STATE 3 n 82 449', 11278 'STATE 6 t 450 82', 11279 'STATE 5 s 452 451', 11280 'STATE 5 b 63 453', 11281 'STATE 6 t 455 454', 11282 'STATE 5 l 457 456', 11283 'STATE 3 l 82 458', 11284 'STATE 1 0 460 459', 11285 'STATE 1 # 111 107', 11286 'STATE 4 u 105 461', 11287 'STATE 3 a 230 462', 11288 'STATE 2 t 463 68', 11289 'STATE 1 n 465 464', 11290 'STATE 4 o 28 466', 11291 'STATE 4 t 28 467', 11292 'STATE 2 r 28 468', 11293 'STATE 1 e 42 469', 11294 'STATE 6 e 471 470', 11295 'STATE 5 a 473 472', 11296 'STATE 3 p 29 474', 11297 'STATE 2 c 476 475', 11298 'STATE 2 r 100 26', 11299 'STATE 3 v 29 477', 11300 'STATE 3 c 26 478', 11301 'STATE 1 i 26 479', 11302 'STATE 2 a 28 100', 11303 'STATE 3 l 29 26', 11304 'STATE 2 s 26 480', 11305 'STATE 3 h 482 481', 11306 'STATE 6 s 230 28', 11307 'STATE 3 m 100 26', 11308 'STATE 6 s 230 483', 11309 'STATE 3 c 26 484', 11310 'STATE 6 l 230 485', 11311 'STATE 6 b 100 486', 11312 'STATE 6 m 26 28', 11313 'STATE 3 n 230 487', 11314 'STATE 3 g 100 488', 11315 'STATE 6 o 230 29', 11316 'STATE 3 p 29 100', 11317 'STATE 5 t 28 29', 11318 'STATE 5 r 28 489', 11319 'STATE 6 # 126 28', 11320 'STATE 1 0 491 490', 11321 'STATE 4 b 493 492', 11322 'STATE 4 t 495 494', 11323 'STATE 4 l 497 496', 11324 'STATE 5 a 68 498', 11325 'STATE 5 a 500 499', 11326 'STATE 5 a 502 501', 11327 'STATE 6 r 68 503', 11328 'STATE 3 k 29 68', 11329 'STATE 5 t 505 504', 11330 'STATE 1 # 42 72', 11331 'STATE 3 p 42 28', 11332 'STATE 6 v 507 506', 11333 'STATE 2 # 509 508', 11334 'STATE 3 o 28 510', 11335 'STATE 1 0 512 511', 11336 'STATE 3 n 29 513', 11337 'STATE 4 v 42 514', 11338 'STATE 1 i 515 42', 11339 'STATE 1 e 100 516', 11340 'STATE 5 s 518 517', 11341 'STATE 3 m 42 519', 11342 'STATE 3 m 42 520', 11343 'STATE 1 0 42 521', 11344 'STATE 2 # 523 522', 11345 'STATE 2 # 525 524', 11346 'STATE 4 l 527 526', 11347 'STATE 1 t 529 528', 11348 'STATE 4 x 100 530', 11349 'STATE 2 i 532 531', 11350 'STATE 4 l 29 533', 11351 'STATE 3 r 535 534', 11352 'STATE 2 e 42 536', 11353 'STATE 1 c 42 537', 11354 'STATE 2 s 539 538', 11355 'STATE 3 l 72 540', 11356 'STATE 3 h 100 541', 11357 'STATE 3 h 42 100', 11358 'STATE 4 d 28 542', 11359 'STATE 4 t 68 28', 11360 'STATE 1 b 28 100', 11361 'STATE 5 l 100 543', 11362 'STATE 6 h 105 544', 11363 'STATE 3 h 63 545', 11364 'STATE 3 b 63 546', 11365 'STATE 3 f 82 107', 11366 'STATE 5 t 547 82', 11367 'STATE 2 k 63 82', 11368 'STATE 2 k 63 548', 11369 'STATE 5 r 82 549', 11370 'STATE 5 s 82 498', 11371 'STATE 3 g 551 550', 11372 'STATE 6 i 82 552', 11373 'STATE 6 e 105 82', 11374 'STATE 2 c 82 553', 11375 'STATE 6 u 82 554', 11376 'STATE 4 i 556 555', 11377 'STATE 3 v 558 557', 11378 'STATE 1 n 29 82', 11379 'STATE 2 s 560 559', 11380 'STATE 3 h 562 561', 11381 'STATE 3 i 68 563', 11382 'STATE 1 e 68 564', 11383 'STATE 1 a 68 565', 11384 'STATE 1 t 42 566', 11385 'STATE 3 l 568 567', 11386 'STATE 3 b 569 29', 11387 'STATE 5 o 571 570', 11388 'STATE 6 # 29 572', 11389 'STATE 3 c 29 573', 11390 'STATE 3 h 100 574', 11391 'STATE 6 i 100 575', 11392 'STATE 3 p 26 576', 11393 'STATE 3 f 26 577', 11394 'STATE 3 l 579 578', 11395 'STATE 2 u 26 580', 11396 'STATE 5 k 29 581', 11397 'STATE 6 o 582 29', 11398 'STATE 6 u 28 583', 11399 'STATE 3 k 26 100', 11400 'STATE 6 # 26 584', 11401 'STATE 6 e 26 585', 11402 'STATE 6 c 230 586', 11403 'STATE 6 # 29 587', 11404 'STATE 2 l 589 588', 11405 'STATE 3 o 591 590', 11406 'STATE 4 l 593 592', 11407 'STATE 6 y 595 594', 11408 'STATE 6 i 100 596', 11409 'STATE 6 s 598 597', 11410 'STATE 6 r 600 599', 11411 'STATE 2 t 602 601', 11412 'STATE 2 s 604 603', 11413 'STATE 5 c 29 82', 11414 'STATE 5 o 606 605', 11415 'STATE 6 # 608 607', 11416 'STATE 5 o 610 609', 11417 'STATE 6 # 29 611', 11418 'STATE 5 h 82 612', 11419 'STATE 4 c 614 613', 11420 'STATE 4 s 42 29', 11421 'STATE 6 e 616 615', 11422 'STATE 4 t 618 617', 11423 'STATE 4 z 29 619', 11424 'STATE 3 r 42 620', 11425 'STATE 4 g 622 621', 11426 'STATE 3 u 623 42', 11427 'STATE 3 l 230 42', 11428 'STATE 4 z 100 624', 11429 'STATE 2 # 230 29', 11430 'STATE 2 r 625 42', 11431 'STATE 1 d 100 42', 11432 'STATE 5 a 28 626', 11433 'STATE 6 t 29 627', 11434 'STATE 1 # 42 628', 11435 'STATE 3 l 629 42', 11436 'STATE 6 t 68 630', 11437 'STATE 1 # 632 631', 11438 'STATE 6 k 634 633', 11439 'STATE 1 # 42 635', 11440 'STATE 3 t 42 636', 11441 'STATE 4 n 638 637', 11442 'STATE 1 0 640 639', 11443 'STATE 3 g 642 641', 11444 'STATE 3 m 68 42', 11445 'STATE 1 0 644 643', 11446 'STATE 3 a 29 645', 11447 'STATE 4 l 29 42', 11448 'STATE 4 c 29 646', 11449 'STATE 3 l 42 647', 11450 'STATE 2 a 68 648', 11451 'STATE 1 i 68 649', 11452 'STATE 3 m 68 650', 11453 'STATE 1 e 652 651', 11454 'STATE 3 s 331 42', 11455 'STATE 3 r 29 653', 11456 'STATE 3 p 100 42', 11457 'STATE 6 o 28 654', 11458 'STATE 6 g 68 655', 11459 'STATE 2 e 657 656', 11460 'STATE 3 r 63 82', 11461 'STATE 5 s 659 658', 11462 'STATE 2 t 63 82', 11463 'STATE 3 r 82 63', 11464 'STATE 5 b 82 660', 11465 'STATE 3 s 662 661', 11466 'STATE 5 c 63 663', 11467 'STATE 6 t 82 664', 11468 'STATE 1 o 154 665', 11469 'STATE 6 m 230 82', 11470 'STATE 4 o 667 666', 11471 'STATE 2 a 29 28', 11472 'STATE 3 j 230 68', 11473 'STATE 2 i 230 68', 11474 'STATE 3 h 669 668', 11475 'STATE 3 s 68 670', 11476 'STATE 3 g 672 671', 11477 'PHONE ae', 11478 'STATE 3 u 29 673', 11479 'STATE 4 m 28 674', 11480 'STATE 1 e 28 68', 11481 'STATE 2 o 42 675', 11482 'STATE 3 p 677 676', 11483 'STATE 2 u 28 678', 11484 'STATE 1 e 230 29', 11485 'STATE 2 s 680 679', 11486 'STATE 3 h 26 29', 11487 'STATE 3 h 682 681', 11488 'STATE 2 g 28 683', 11489 'STATE 6 # 100 684', 11490 'STATE 6 e 26 100', 11491 'STATE 1 # 686 685', 11492 'STATE 1 # 26 687', 11493 'STATE 6 e 26 688', 11494 'STATE 6 t 26 689', 11495 'STATE 3 i 28 690', 11496 'STATE 6 s 29 691', 11497 'STATE 5 b 29 692', 11498 'STATE 3 m 28 693', 11499 'STATE 3 l 28 694', 11500 'STATE 6 c 100 695', 11501 'STATE 3 c 100 696', 11502 'STATE 6 e 698 697', 11503 'STATE 1 n 28 699', 11504 'STATE 1 c 126 700', 11505 'STATE 4 n 702 701', 11506 'STATE 5 t 704 703', 11507 'STATE 4 e 28 705', 11508 'STATE 5 a 707 706', 11509 'STATE 4 l 709 708', 11510 'STATE 3 c 28 68', 11511 'STATE 1 0 42 68', 11512 'STATE 4 g 711 710', 11513 'STATE 4 g 230 712', 11514 'STATE 2 e 68 713', 11515 'STATE 1 d 42 714', 11516 'STATE 4 a 28 715', 11517 'STATE 5 s 717 716', 11518 'STATE 6 # 719 718', 11519 'STATE 3 t 82 720', 11520 'STATE 4 a 28 721', 11521 'STATE 6 # 29 722', 11522 'STATE 3 v 724 723', 11523 'STATE 4 n 100 29', 11524 'STATE 5 m 726 725', 11525 'STATE 6 # 29 727', 11526 'STATE 3 b 100 728', 11527 'STATE 3 p 729 82', 11528 'STATE 4 a 28 730', 11529 'STATE 5 h 82 100', 11530 'STATE 6 c 732 731', 11531 'STATE 4 n 734 733', 11532 'STATE 4 s 42 735', 11533 'STATE 2 r 68 736', 11534 'STATE 3 t 738 737', 11535 'STATE 3 m 740 739', 11536 'STATE 4 w 82 741', 11537 'STATE 2 i 100 742', 11538 'PHONE w-ey1', 11539 'STATE 1 o 42 743', 11540 'STATE 3 m 42 100', 11541 'STATE 6 s 42 744', 11542 'STATE 3 m 42 745', 11543 'STATE 3 r 42 28', 11544 'STATE 2 p 42 746', 11545 'STATE 1 o 42 747', 11546 'STATE 1 0 749 748', 11547 'STATE 6 r 751 750', 11548 'STATE 3 v 753 752', 11549 'STATE 4 c 29 754', 11550 'STATE 6 n 42 755', 11551 'STATE 3 l 42 756', 11552 'STATE 4 x 100 757', 11553 'STATE 2 0 100 758', 11554 'STATE 2 o 29 759', 11555 'STATE 2 # 42 230', 11556 'STATE 2 c 42 760', 11557 'STATE 2 e 68 42', 11558 'STATE 4 l 68 761', 11559 'STATE 3 m 100 762', 11560 'STATE 1 # 42 763', 11561 'STATE 4 d 42 740', 11562 'STATE 3 i 765 764', 11563 'STATE 2 u 68 766', 11564 'STATE 1 t 68 42', 11565 'STATE 1 t 42 767', 11566 'STATE 2 e 247 768', 11567 'STATE 3 g 42 247', 11568 'STATE 3 n 68 247', 11569 'STATE 5 h 28 769', 11570 'STATE 6 u 68 28', 11571 'STATE 2 t 105 770', 11572 'STATE 6 e 771 82', 11573 'STATE 3 h 107 772', 11574 'STATE 3 h 63 105', 11575 'STATE 6 i 63 773', 11576 'STATE 6 # 82 774', 11577 'STATE 5 t 154 82', 11578 'STATE 5 d 111 775', 11579 'STATE 6 e 82 776', 11580 'STATE 2 a 154 777', 11581 'STATE 4 e 628 778', 11582 'STATE 2 a 28 105', 11583 'STATE 3 w 780 779', 11584 'STATE 1 l 562 781', 11585 'STATE 3 t 100 782', 11586 'STATE 2 a 100 68', 11587 'STATE 2 i 68 562', 11588 'STATE 3 h 100 783', 11589 'STATE 1 # 28 784', 11590 'STATE 3 l 786 785', 11591 'STATE 5 k 788 787', 11592 'STATE 5 a 790 789', 11593 'STATE 2 c 28 791', 11594 'STATE 3 h 29 792', 11595 'STATE 3 c 793 29', 11596 'STATE 2 g 26 28', 11597 'STATE 6 c 26 28', 11598 'STATE 6 y 29 794', 11599 'STATE 2 a 795 29', 11600 'STATE 1 e 26 796', 11601 'STATE 3 h 26 797', 11602 'STATE 3 m 26 798', 11603 'STATE 6 u 26 799', 11604 'STATE 1 # 26 28', 11605 'STATE 1 a 28 800', 11606 'STATE 5 c 802 801', 11607 'STATE 5 p 230 29', 11608 'STATE 3 l 100 803', 11609 'STATE 3 p 804 26', 11610 'STATE 3 c 230 805', 11611 'STATE 3 t 230 806', 11612 'STATE 3 d 100 807', 11613 'STATE 3 f 26 808', 11614 'STATE 2 t 28 809', 11615 'STATE 1 # 126 28', 11616 'STATE 5 a 811 810', 11617 'STATE 5 g 813 812', 11618 'STATE 4 n 68 28', 11619 'STATE 2 c 28 100', 11620 'STATE 4 n 815 814', 11621 'STATE 5 t 817 816', 11622 'STATE 6 r 68 818', 11623 'STATE 4 h 820 819', 11624 'STATE 6 # 822 821', 11625 'STATE 2 a 824 823', 11626 'STATE 6 n 100 68', 11627 'STATE 1 o 100 825', 11628 'STATE 2 u 68 826', 11629 'STATE 2 t 42 827', 11630 'STATE 3 i 829 828', 11631 'STATE 5 a 230 830', 11632 'STATE 6 o 100 831', 11633 'STATE 5 t 82 832', 11634 'STATE 5 a 29 833', 11635 'STATE 3 m 82 834', 11636 'STATE 4 e 836 835', 11637 'STATE 6 r 838 837', 11638 'STATE 6 n 840 839', 11639 'STATE 4 c 72 841', 11640 'STATE 5 d 843 842', 11641 'STATE 6 a 100 844', 11642 'STATE 6 s 68 845', 11643 'STATE 6 s 29 846', 11644 'STATE 5 l 230 82', 11645 'STATE 5 g 100 847', 11646 'STATE 6 t 849 848', 11647 'STATE 4 t 100 850', 11648 'STATE 1 0 852 851', 11649 'STATE 1 0 853 68', 11650 'STATE 4 l 68 230', 11651 'STATE 2 e 68 854', 11652 'STATE 4 n 856 855', 11653 'STATE 4 l 858 857', 11654 'STATE 3 d 42 859', 11655 'STATE 4 n 42 29', 11656 'STATE 4 y 42 860', 11657 'STATE 1 0 100 247', 11658 'STATE 4 c 42 861', 11659 'STATE 6 n 42 862', 11660 'STATE 3 n 42 863', 11661 'STATE 6 e 42 68', 11662 'STATE 6 i 42 864', 11663 'STATE 3 o 28 865', 11664 'STATE 4 m 867 866', 11665 'STATE 2 s 869 868', 11666 'STATE 3 o 28 870', 11667 'STATE 6 l 872 871', 11668 'STATE 4 l 873 562', 11669 'STATE 4 s 29 100', 11670 'STATE 3 b 42 68', 11671 'STATE 3 b 42 100', 11672 'STATE 4 j 68 874', 11673 'STATE 2 e 68 875', 11674 'STATE 1 # 68 876', 11675 'STATE 3 l 878 877', 11676 'STATE 4 h 68 879', 11677 'STATE 4 l 100 880', 11678 'STATE 4 c 882 881', 11679 'STATE 2 e 42 883', 11680 'STATE 2 c 42 884', 11681 'STATE 1 t 68 885', 11682 'STATE 1 d 42 886', 11683 'STATE 3 p 42 887', 11684 'STATE 1 u 28 888', 11685 'STATE 1 r 29 889', 11686 'STATE 3 l 105 82', 11687 'STATE 3 r 63 771', 11688 'STATE 5 s 63 890', 11689 'STATE 5 m 63 891', 11690 'STATE 5 t 82 63', 11691 'STATE 6 # 82 892', 11692 'STATE 2 r 154 82', 11693 'STATE 4 k 894 893', 11694 'STATE 3 g 68 895', 11695 'STATE 2 o 68 896', 11696 'STATE 1 u 68 897', 11697 'STATE 3 c 100 68', 11698 'STATE 3 w 29 898', 11699 'STATE 4 f 28 899', 11700 'STATE 1 u 901 900', 11701 'STATE 1 i 42 902', 11702 'STATE 5 a 904 903', 11703 'STATE 3 m 29 905', 11704 'STATE 2 p 28 906', 11705 'STATE 6 g 26 28', 11706 'STATE 1 o 28 907', 11707 'STATE 3 u 29 908', 11708 'STATE 6 e 29 909', 11709 'STATE 1 n 29 910', 11710 'STATE 3 v 28 230', 11711 'STATE 6 s 29 28', 11712 'STATE 3 l 26 911', 11713 'STATE 2 s 26 29', 11714 'STATE 6 l 26 912', 11715 'STATE 2 a 28 913', 11716 'STATE 6 a 915 914', 11717 'STATE 3 m 917 916', 11718 'STATE 6 t 100 918', 11719 'STATE 6 n 28 26', 11720 'STATE 6 m 28 919', 11721 'STATE 6 h 100 920', 11722 'STATE 3 p 26 921', 11723 'STATE 3 c 230 922', 11724 'STATE 6 n 126 923', 11725 'STATE 4 l 925 924', 11726 'STATE 6 # 927 926', 11727 'STATE 6 # 929 928', 11728 'STATE 6 e 931 930', 11729 'STATE 4 a 28 932', 11730 'STATE 5 y 26 933', 11731 'STATE 5 d 935 934', 11732 'STATE 6 e 82 936', 11733 'STATE 6 n 230 937', 11734 'STATE 4 e 939 938', 11735 'STATE 6 # 940 29', 11736 'STATE 6 s 82 941', 11737 'STATE 3 b 82 942', 11738 'STATE 1 0 944 943', 11739 'STATE 1 p 68 945', 11740 'STATE 4 p 68 946', 11741 'STATE 2 o 68 947', 11742 'STATE 2 i 949 948', 11743 'STATE 4 e 951 950', 11744 'STATE 2 d 953 952', 11745 'STATE 5 o 29 954', 11746 'STATE 6 l 562 955', 11747 'STATE 3 n 68 956', 11748 'STATE 5 l 82 68', 11749 'STATE 5 a 29 957', 11750 'STATE 4 h 959 958', 11751 'STATE 3 m 28 960', 11752 'STATE 6 s 962 961', 11753 'STATE 4 n 100 963', 11754 'STATE 6 s 965 964', 11755 'STATE 3 p 230 966', 11756 'STATE 4 n 562 100', 11757 'STATE 5 v 968 967', 11758 'STATE 6 a 230 969', 11759 'STATE 3 c 29 970', 11760 'STATE 6 m 230 971', 11761 'STATE 3 t 230 972', 11762 'STATE 6 # 29 973', 11763 'STATE 1 0 975 974', 11764 'STATE 2 q 29 976', 11765 'STATE 4 s 756 977', 11766 'STATE 1 # 979 978', 11767 'STATE 4 v 42 980', 11768 'STATE 3 d 100 562', 11769 'STATE 1 c 68 981', 11770 'STATE 2 o 29 982', 11771 'STATE 3 m 42 983', 11772 'STATE 2 s 29 42', 11773 'STATE 1 r 100 29', 11774 'STATE 3 f 230 984', 11775 'STATE 4 k 42 985', 11776 'STATE 2 e 42 986', 11777 'STATE 3 b 28 987', 11778 'STATE 3 c 42 988', 11779 'STATE 2 t 42 989', 11780 'STATE 4 i 28 990', 11781 'STATE 4 d 100 991', 11782 'STATE 6 l 68 992', 11783 'STATE 3 r 994 993', 11784 'STATE 3 p 42 995', 11785 'STATE 3 x 100 996', 11786 'STATE 3 m 998 997', 11787 'STATE 3 l 1000 999', 11788 'STATE 6 r 68 100', 11789 'STATE 3 r 42 1001', 11790 'STATE 3 r 42 1002', 11791 'STATE 2 n 68 29', 11792 'STATE 2 i 529 42', 11793 'STATE 1 m 42 1003', 11794 'STATE 4 m 1005 1004', 11795 'STATE 2 # 42 68', 11796 'STATE 3 d 42 1006', 11797 'STATE 2 p 42 1007', 11798 'STATE 1 l 72 1008', 11799 'STATE 1 e 68 42', 11800 'STATE 1 d 68 42', 11801 'STATE 3 n 42 1009', 11802 'STATE 3 r 1011 1010', 11803 'STATE 2 n 1012 28', 11804 'STATE 5 d 82 1013', 11805 'STATE 6 e 63 82', 11806 'STATE 6 u 29 1014', 11807 'STATE 6 k 82 1015', 11808 'STATE 4 h 1017 1016', 11809 'STATE 3 i 562 1018', 11810 'STATE 3 f 100 1019', 11811 'STATE 2 e 68 230', 11812 'STATE 1 e 68 1020', 11813 'STATE 2 o 68 1021', 11814 'STATE 4 l 28 1022', 11815 'STATE 2 r 42 1023', 11816 'STATE 2 r 28 42', 11817 'STATE 1 a 72 42', 11818 'STATE 5 o 1025 1024', 11819 'STATE 6 # 29 1026', 11820 'STATE 2 m 29 230', 11821 'STATE 5 o 28 1027', 11822 'STATE 6 o 29 1028', 11823 'STATE 3 l 29 1029', 11824 'STATE 6 i 230 29', 11825 'STATE 2 i 230 1030', 11826 'STATE 6 d 26 28', 11827 'STATE 6 t 1032 1031', 11828 'STATE 1 u 28 1033', 11829 'STATE 6 o 1035 1034', 11830 'STATE 5 j 29 1036', 11831 'STATE 3 s 230 909', 11832 'STATE 6 e 230 1037', 11833 'STATE 3 g 230 1038', 11834 'STATE 6 z 28 1039', 11835 'STATE 3 s 26 1040', 11836 'STATE 6 u 230 1041', 11837 'STATE 3 b 100 29', 11838 'STATE 6 # 1042 126', 11839 'STATE 4 a 28 1043', 11840 'STATE 5 s 1045 1044', 11841 'STATE 6 b 1047 1046', 11842 'STATE 4 h 230 29', 11843 'STATE 5 c 1049 1048', 11844 'STATE 5 a 1051 1050', 11845 'STATE 6 # 100 1052', 11846 'STATE 3 l 100 1053', 11847 'STATE 4 m 1055 1054', 11848 'STATE 5 t 1057 1056', 11849 'STATE 5 m 1059 1058', 11850 'STATE 6 e 82 1060', 11851 'STATE 6 a 82 1061', 11852 'STATE 6 m 100 68', 11853 'STATE 4 w 82 1062', 11854 'STATE 2 c 68 1063', 11855 'STATE 2 r 230 1064', 11856 'STATE 2 h 82 1065', 11857 'STATE 3 f 82 1066', 11858 'STATE 4 b 1068 1067', 11859 'STATE 6 i 1070 1069', 11860 'STATE 6 t 230 1071', 11861 'STATE 4 d 29 1072', 11862 'STATE 1 o 68 1073', 11863 'STATE 3 l 1075 1074', 11864 'STATE 1 p 68 1076', 11865 'STATE 3 w 1078 1077', 11866 'STATE 3 r 28 1079', 11867 'STATE 2 c 82 1080', 11868 'STATE 6 n 1082 1081', 11869 'STATE 4 c 1084 1083', 11870 'STATE 6 c 562 1085', 11871 'STATE 6 n 68 1086', 11872 'STATE 3 c 1088 1087', 11873 'STATE 4 n 1090 1089', 11874 'STATE 6 a 1092 1091', 11875 'STATE 3 h 28 1093', 11876 'STATE 6 o 1095 1094', 11877 'STATE 4 n 1097 1096', 11878 'STATE 3 f 42 1098', 11879 'STATE 4 t 1100 1099', 11880 'STATE 4 n 100 1101', 11881 'STATE 4 v 68 1102', 11882 'STATE 6 e 1104 1103', 11883 'STATE 3 m 29 1105', 11884 'STATE 3 v 230 1106', 11885 'STATE 3 b 29 1107', 11886 'STATE 3 s 68 1108', 11887 'STATE 3 s 100 1109', 11888 'STATE 4 n 29 1110', 11889 'STATE 6 u 42 1111', 11890 'STATE 6 s 1113 1112', 11891 'STATE 4 d 68 1114', 11892 'STATE 2 t 68 1115', 11893 'STATE 4 t 42 1116', 11894 'STATE 4 z 42 193', 11895 'STATE 4 l 1118 1117', 11896 'STATE 2 i 1120 1119', 11897 'STATE 2 s 29 1121', 11898 'STATE 2 l 42 1122', 11899 'STATE 4 n 29 100', 11900 'STATE 1 # 1124 1123', 11901 'STATE 2 b 29 1125', 11902 'STATE 3 n 42 1126', 11903 'STATE 1 0 1127 42', 11904 'STATE 2 r 42 68', 11905 'STATE 6 z 29 1128', 11906 'STATE 4 n 100 1129', 11907 'STATE 6 n 68 873', 11908 'STATE 6 n 1131 1130', 11909 'STATE 6 l 1133 1132', 11910 'STATE 4 d 100 1134', 11911 'STATE 2 d 42 1135', 11912 'STATE 6 t 1137 1136', 11913 'STATE 6 y 42 1138', 11914 'STATE 3 h 1140 1139', 11915 'STATE 4 b 42 68', 11916 'STATE 2 # 1142 1141', 11917 'STATE 1 0 42 1143', 11918 'STATE 1 c 68 42', 11919 'STATE 4 d 42 1144', 11920 'STATE 1 # 42 68', 11921 'STATE 4 l 1146 1145', 11922 'STATE 2 s 42 1147', 11923 'STATE 3 g 1148 42', 11924 'STATE 3 g 42 1149', 11925 'STATE 6 l 68 1150', 11926 'STATE 2 t 42 1151', 11927 'STATE 4 l 68 28', 11928 'STATE 5 r 82 1152', 11929 'STATE 6 i 82 1153', 11930 'STATE 6 l 82 1154', 11931 'STATE 4 m 1156 1155', 11932 'STATE 2 r 1157 68', 11933 'STATE 2 c 1159 1158', 11934 'STATE 3 l 68 1160', 11935 'STATE 2 t 68 1161', 11936 'STATE 2 a 68 1162', 11937 'STATE 2 r 68 28', 11938 'STATE 3 s 28 1163', 11939 'STATE 6 # 1165 1164', 11940 'STATE 6 # 1166 28', 11941 'STATE 3 h 1168 1167', 11942 'STATE 1 e 28 1169', 11943 'STATE 5 # 28 1170', 11944 'STATE 3 i 28 1171', 11945 'STATE 1 s 29 1172', 11946 'STATE 1 m 29 1173', 11947 'STATE 1 a 28 26', 11948 'STATE 3 t 28 1174', 11949 'STATE 5 q 1176 1175', 11950 'STATE 5 t 1178 1177', 11951 'STATE 3 f 29 1179', 11952 'STATE 6 i 29 1180', 11953 'STATE 6 c 28 1181', 11954 'STATE 2 # 1182 100', 11955 'STATE 3 k 26 1183', 11956 'STATE 3 c 1185 1184', 11957 'STATE 5 y 126 28', 11958 'STATE 4 w 1187 1186', 11959 'STATE 3 w 1189 1188', 11960 'STATE 6 k 29 68', 11961 'STATE 3 b 711 1190', 11962 'STATE 3 l 100 42', 11963 'STATE 6 s 1192 1191', 11964 'STATE 6 e 1194 1193', 11965 'STATE 5 k 100 1195', 11966 'STATE 2 u 29 1196', 11967 'STATE 6 i 42 1197', 11968 'STATE 3 r 1198 42', 11969 'STATE 5 r 1200 1199', 11970 'STATE 5 a 1202 1201', 11971 'STATE 5 n 1204 1203', 11972 'STATE 6 o 100 1205', 11973 'STATE 5 u 68 1206', 11974 'STATE 6 o 29 230', 11975 'STATE 6 r 82 29', 11976 'STATE 6 o 100 1207', 11977 'STATE 4 o 28 1208', 11978 'STATE 1 a 133 42', 11979 'STATE 2 n 29 1209', 11980 'STATE 2 s 1211 1210', 11981 'STATE 3 c 82 1212', 11982 'STATE 3 h 1214 1213', 11983 'STATE 1 b 42 1215', 11984 'STATE 6 r 1217 1216', 11985 'STATE 4 l 230 68', 11986 'STATE 4 m 68 1218', 11987 'STATE 4 n 29 68', 11988 'STATE 2 a 68 937', 11989 'STATE 1 n 42 1219', 11990 'STATE 1 g 72 42', 11991 'STATE 3 c 42 1220', 11992 'STATE 2 a 1222 1221', 11993 'STATE 5 g 100 1223', 11994 'STATE 2 s 42 28', 11995 'STATE 2 g 1225 1224', 11996 'STATE 4 g 68 1226', 11997 'STATE 4 m 68 100', 11998 'STATE 3 h 100 1227', 11999 'STATE 5 k 100 1228', 12000 'STATE 6 a 100 1229', 12001 'STATE 3 h 100 1230', 12002 'STATE 5 l 1231 29', 12003 'STATE 5 p 100 1232', 12004 'STATE 3 o 28 1233', 12005 'STATE 5 g 1235 1234', 12006 'STATE 6 e 29 1236', 12007 'STATE 5 r 28 29', 12008 'STATE 5 n 28 1237', 12009 'STATE 6 n 1239 1238', 12010 'STATE 4 b 562 1240', 12011 'STATE 3 l 68 29', 12012 'STATE 3 j 68 562', 12013 'STATE 4 b 1242 1241', 12014 'STATE 4 n 1244 1243', 12015 'STATE 3 d 42 1245', 12016 'STATE 4 t 68 29', 12017 'STATE 4 h 68 1246', 12018 'STATE 6 # 82 1247', 12019 'STATE 5 t 82 1248', 12020 'STATE 6 o 29 1249', 12021 'STATE 6 o 1251 1250', 12022 'STATE 6 e 230 1252', 12023 'STATE 6 g 100 1253', 12024 'STATE 6 y 68 1254', 12025 'STATE 5 m 82 1255', 12026 'STATE 1 # 1257 1256', 12027 'STATE 6 k 608 1258', 12028 'STATE 4 o 28 1259', 12029 'STATE 3 b 68 1260', 12030 'STATE 4 n 100 1261', 12031 'STATE 3 v 230 68', 12032 'STATE 2 # 1262 100', 12033 'STATE 2 # 230 42', 12034 'STATE 3 l 42 1263', 12035 'STATE 3 t 42 68', 12036 'STATE 2 g 1265 1264', 12037 'STATE 1 # 29 1266', 12038 'STATE 2 # 1268 1267', 12039 'STATE 3 t 29 1269', 12040 'STATE 4 s 29 42', 12041 'STATE 5 c 42 1270', 12042 'STATE 3 d 42 1271', 12043 'STATE 6 o 1273 1272', 12044 'STATE 4 b 1275 1274', 12045 'STATE 4 t 1277 1276', 12046 'STATE 2 p 230 1278', 12047 'STATE 2 g 42 1279', 12048 'STATE 4 v 1280 100', 12049 'STATE 3 h 42 1281', 12050 'STATE 2 f 42 1282', 12051 'STATE 6 i 68 1283', 12052 'STATE 4 n 68 1284', 12053 'STATE 4 t 68 1285', 12054 'STATE 4 n 1287 1286', 12055 'STATE 4 z 42 100', 12056 'STATE 4 k 42 1288', 12057 'STATE 3 t 100 42', 12058 'STATE 3 l 42 271', 12059 'STATE 4 y 42 1289', 12060 'STATE 3 g 42 1290', 12061 'STATE 1 e 42 1291', 12062 'STATE 3 f 42 1096', 12063 'STATE 2 n 72 42', 12064 'STATE 3 c 42 68', 12065 'STATE 1 i 247 1292', 12066 'STATE 1 o 247 331', 12067 'STATE 2 a 29 82', 12068 'STATE 3 f 1294 1293', 12069 'STATE 6 s 82 1295', 12070 'STATE 4 a 28 1296', 12071 'STATE 2 g 100 1297', 12072 'STATE 1 a 68 29', 12073 'STATE 3 y 562 1298', 12074 'STATE 3 h 68 562', 12075 'STATE 3 n 68 1299', 12076 'STATE 2 o 230 1300', 12077 'STATE 2 i 29 1301', 12078 'STATE 2 s 42 72', 12079 'STATE 5 # 1303 1302', 12080 'STATE 3 y 29 1304', 12081 'STATE 2 i 230 29', 12082 'STATE 1 d 28 1305', 12083 'STATE 1 s 100 28', 12084 'STATE 6 # 28 1306', 12085 'STATE 1 h 28 1307', 12086 'STATE 2 a 1308 29', 12087 'STATE 2 e 230 1309', 12088 'STATE 3 u 230 1310', 12089 'STATE 1 e 26 28', 12090 'STATE 6 i 1312 1311', 12091 'STATE 3 m 29 230', 12092 'STATE 5 d 1314 1313', 12093 'STATE 3 m 230 1315', 12094 'STATE 5 t 230 1316', 12095 'STATE 6 h 29 400', 12096 'STATE 6 m 28 1317', 12097 'STATE 6 n 1319 1318', 12098 'STATE 6 l 230 1320', 12099 'STATE 3 f 29 1321', 12100 'STATE 6 a 230 100', 12101 'STATE 5 t 1323 1322', 12102 'STATE 6 k 29 82', 12103 'STATE 6 # 1325 1324', 12104 'STATE 5 k 1327 1326', 12105 'STATE 6 y 68 1328', 12106 'STATE 3 w 1330 1329', 12107 'STATE 5 t 68 1331', 12108 'STATE 6 y 68 1332', 12109 'STATE 2 f 230 1333', 12110 'STATE 5 d 1335 1334', 12111 'STATE 1 t 29 1336', 12112 'STATE 6 l 100 1337', 12113 'STATE 1 a 42 1338', 12114 'STATE 4 w 1340 1339', 12115 'STATE 6 o 100 1341', 12116 'STATE 5 u 68 1342', 12117 'STATE 6 n 68 1343', 12118 'STATE 6 l 100 1344', 12119 'STATE 6 o 68 100', 12120 'STATE 6 a 562 100', 12121 'STATE 5 p 100 1345', 12122 'STATE 6 i 29 100', 12123 'STATE 4 g 1347 1346', 12124 'STATE 3 d 29 230', 12125 'STATE 3 w 82 1348', 12126 'STATE 1 n 82 1349', 12127 'STATE 2 e 1351 1350', 12128 'STATE 4 v 1353 1352', 12129 'STATE 2 s 100 1354', 12130 'STATE 1 o 100 68', 12131 'STATE 6 u 68 1355', 12132 'STATE 4 m 100 1226', 12133 'STATE 6 g 68 1356', 12134 'STATE 3 i 42 1357', 12135 'STATE 3 t 42 1358', 12136 'STATE 3 u 1360 1359', 12137 'STATE 3 v 29 1361', 12138 'STATE 5 k 82 29', 12139 'STATE 4 n 1363 1362', 12140 'STATE 6 a 68 1364', 12141 'STATE 4 n 100 68', 12142 'STATE 3 r 100 29', 12143 'STATE 5 t 100 1365', 12144 'STATE 6 m 562 1366', 12145 'STATE 6 e 29 1367', 12146 'STATE 3 h 100 29', 12147 'STATE 5 l 100 82', 12148 'STATE 4 o 1369 1368', 12149 'STATE 3 v 1371 1370', 12150 'STATE 6 e 1373 1372', 12151 'STATE 5 l 29 1374', 12152 'STATE 5 t 28 1375', 12153 'STATE 4 k 68 1376', 12154 'STATE 4 x 100 1377', 12155 'STATE 4 h 29 68', 12156 'STATE 3 l 230 1378', 12157 'STATE 3 l 42 100', 12158 'STATE 4 k 1380 1379', 12159 'STATE 3 m 100 1381', 12160 'STATE 3 f 42 1382', 12161 'STATE 4 p 68 1383', 12162 'STATE 5 u 1385 1384', 12163 'STATE 5 k 82 1386', 12164 'STATE 3 s 1388 1387', 12165 'STATE 6 e 1389 82', 12166 'STATE 3 b 230 29', 12167 'STATE 6 o 100 1390', 12168 'STATE 6 r 100 1391', 12169 'STATE 3 c 68 1392', 12170 'STATE 5 r 29 1393', 12171 'STATE 6 s 1395 1394', 12172 'STATE 2 q 29 1396', 12173 'STATE 6 m 1398 1397', 12174 'STATE 4 n 100 1399', 12175 'STATE 4 l 1401 1400', 12176 'STATE 4 l 1403 1402', 12177 'STATE 4 t 42 1404', 12178 'STATE 3 n 42 68', 12179 'STATE 4 l 1405 42', 12180 'STATE 4 c 42 100', 12181 'STATE 1 o 42 100', 12182 'STATE 4 m 1407 1406', 12183 'STATE 3 m 1409 1408', 12184 'STATE 3 x 100 1410', 12185 'STATE 1 t 42 1411', 12186 'STATE 3 r 42 1412', 12187 'STATE 4 m 1414 1413', 12188 'STATE 2 n 100 42', 12189 'STATE 6 l 230 1415', 12190 'STATE 6 r 100 1416', 12191 'STATE 3 i 68 1417', 12192 'STATE 6 a 562 1418', 12193 'STATE 4 m 68 42', 12194 'STATE 2 t 42 1419', 12195 'STATE 2 t 100 42', 12196 'STATE 6 n 100 42', 12197 'STATE 4 t 42 1420', 12198 'STATE 6 y 1422 1421', 12199 'STATE 4 m 100 1423', 12200 'STATE 4 n 68 100', 12201 'STATE 3 m 1425 1424', 12202 'STATE 3 p 100 68', 12203 'STATE 4 d 42 1426', 12204 'STATE 1 r 68 42', 12205 'STATE 4 k 42 1427', 12206 'STATE 3 g 29 1428', 12207 'STATE 3 l 29 1429', 12208 'STATE 6 h 82 1430', 12209 'STATE 5 s 82 63', 12210 'STATE 3 p 82 63', 12211 'STATE 4 z 230 1431', 12212 'STATE 3 h 671 1432', 12213 'STATE 1 t 230 1433', 12214 'STATE 3 y 68 1434', 12215 'STATE 2 g 68 1435', 12216 'STATE 2 e 68 1436', 12217 'STATE 6 s 1438 1437', 12218 'STATE 3 g 28 1439', 12219 'STATE 3 c 29 1440', 12220 'STATE 1 m 29 1441', 12221 'STATE 5 # 28 29', 12222 'STATE 2 l 28 1442', 12223 'STATE 5 # 29 28', 12224 'STATE 1 t 29 1443', 12225 'STATE 1 a 28 1444', 12226 'STATE 6 e 1445 29', 12227 'STATE 5 t 29 1446', 12228 'STATE 3 k 29 1447', 12229 'STATE 3 c 230 29', 12230 'STATE 3 c 230 1251', 12231 'STATE 3 k 29 1448', 12232 'STATE 3 b 1450 1449', 12233 'STATE 3 p 28 1451', 12234 'STATE 3 m 28 26', 12235 'STATE 3 h 28 1452', 12236 'STATE 3 b 1453 29', 12237 'STATE 3 b 1455 1454', 12238 'STATE 4 t 1457 1456', 12239 'STATE 5 d 1459 1458', 12240 'STATE 5 d 68 1460', 12241 'STATE 5 d 1461 68', 12242 'STATE 6 # 29 82', 12243 'STATE 1 r 68 1462', 12244 'STATE 5 a 1464 1463', 12245 'STATE 5 d 29 82', 12246 'STATE 5 d 1466 1465', 12247 'STATE 6 i 1468 1467', 12248 'STATE 3 h 100 1469', 12249 'STATE 3 m 68 1470', 12250 'STATE 3 l 1472 1471', 12251 'STATE 3 t 100 1473', 12252 'STATE 6 u 100 1474', 12253 'STATE 2 t 42 72', 12254 'STATE 5 a 1476 1475', 12255 'STATE 5 a 68 29', 12256 'STATE 6 i 1478 1477', 12257 'STATE 6 r 100 1479', 12258 'STATE 6 z 100 1480', 12259 'STATE 5 g 1482 1481', 12260 'STATE 6 i 1484 1483', 12261 'STATE 4 c 68 1485', 12262 'STATE 3 t 562 1486', 12263 'STATE 3 c 82 1487', 12264 'STATE 1 y 68 29', 12265 'STATE 3 d 68 1488', 12266 'STATE 3 r 82 1489', 12267 'STATE 3 r 1491 1490', 12268 'STATE 6 r 42 230', 12269 'STATE 2 c 28 68', 12270 'STATE 6 l 1493 1492', 12271 'STATE 6 m 68 1070', 12272 'STATE 2 o 1495 1494', 12273 'STATE 1 t 1496 42', 12274 'STATE 2 u 1498 1497', 12275 'STATE 6 r 230 1499', 12276 'STATE 5 o 331 1500', 12277 'STATE 2 v 68 1501', 12278 'STATE 5 c 230 29', 12279 'STATE 4 c 68 1502', 12280 'STATE 6 e 42 100', 12281 'STATE 6 p 562 1503', 12282 'STATE 6 a 100 1504', 12283 'STATE 6 e 1506 1505', 12284 'STATE 6 i 1507 230', 12285 'STATE 3 i 68 1508', 12286 'STATE 5 d 100 1509', 12287 'STATE 6 i 1511 1510', 12288 'STATE 3 t 100 1512', 12289 'STATE 5 r 29 1513', 12290 'STATE 3 b 28 1514', 12291 'STATE 3 c 1516 1515', 12292 'STATE 3 l 1518 1517', 12293 'STATE 4 p 230 1519', 12294 'STATE 6 l 1521 1520', 12295 'STATE 3 n 230 1522', 12296 'STATE 3 c 68 1523', 12297 'STATE 3 c 100 1524', 12298 'STATE 3 b 42 1525', 12299 'STATE 3 m 1527 1526', 12300 'STATE 3 v 562 1528', 12301 'STATE 3 b 1530 1529', 12302 'STATE 6 e 100 1531', 12303 'STATE 6 a 100 1532', 12304 'STATE 3 b 230 82', 12305 'STATE 6 i 82 100', 12306 'STATE 3 m 100 1533', 12307 'STATE 3 k 100 1534', 12308 'STATE 4 h 29 1535', 12309 'STATE 4 b 1537 1536', 12310 'STATE 4 l 68 1538', 12311 'STATE 3 t 1540 1539', 12312 'STATE 6 f 100 1541', 12313 'STATE 3 m 100 1542', 12314 'STATE 4 l 100 1543', 12315 'STATE 4 c 100 1544', 12316 'STATE 1 0 68 1545', 12317 'STATE 3 r 100 1546', 12318 'STATE 1 0 68 100', 12319 'STATE 4 m 42 1547', 12320 'STATE 2 a 29 42', 12321 'STATE 3 r 1549 1548', 12322 'STATE 1 o 100 1550', 12323 'STATE 3 j 68 1551', 12324 'STATE 4 c 100 1552', 12325 'STATE 2 c 1554 1553', 12326 'STATE 6 h 42 1555', 12327 'STATE 6 e 28 42', 12328 'STATE 6 r 1557 1556', 12329 'STATE 6 n 68 1558', 12330 'STATE 6 x 68 1559', 12331 'STATE 6 l 100 68', 12332 'STATE 6 t 100 1560', 12333 'STATE 2 a 68 29', 12334 'STATE 2 c 42 1561', 12335 'STATE 4 m 42 1562', 12336 'STATE 4 p 42 1563', 12337 'STATE 3 r 100 42', 12338 'STATE 4 c 100 68', 12339 'STATE 3 p 68 1564', 12340 'STATE 4 d 100 68', 12341 'STATE 1 # 42 1565', 12342 'STATE 3 c 42 1566', 12343 'STATE 3 v 42 1567', 12344 'STATE 1 d 68 1568', 12345 'STATE 5 t 1570 1569', 12346 'STATE 4 x 1572 1571', 12347 'STATE 3 r 100 1573', 12348 'STATE 1 b 68 1574', 12349 'STATE 3 a 29 1575', 12350 'STATE 2 a 1576 68', 12351 'STATE 3 y 68 100', 12352 'STATE 6 z 28 1577', 12353 'STATE 3 y 29 1578', 12354 'STATE 2 s 1580 1579', 12355 'STATE 5 z 230 1581', 12356 'STATE 3 c 28 1582', 12357 'STATE 5 d 29 1583', 12358 'STATE 1 c 29 1584', 12359 'STATE 3 p 26 1585', 12360 'STATE 5 m 1587 1586', 12361 'STATE 5 p 230 1588', 12362 'STATE 3 g 29 1589', 12363 'STATE 3 p 29 1590', 12364 'STATE 3 c 28 26', 12365 'STATE 6 n 100 28', 12366 'STATE 6 o 230 26', 12367 'STATE 3 m 28 1591', 12368 'STATE 6 a 100 29', 12369 'STATE 4 e 1593 1592', 12370 'STATE 5 h 1595 1594', 12371 'STATE 2 a 1597 1596', 12372 'STATE 6 # 68 1598', 12373 'STATE 5 y 68 1599', 12374 'STATE 2 e 68 1600', 12375 'STATE 5 t 82 1601', 12376 'STATE 1 e 1603 1602', 12377 'STATE 2 d 82 1604', 12378 'STATE 5 s 1606 1605', 12379 'STATE 3 m 100 1607', 12380 'STATE 3 b 100 1608', 12381 'STATE 1 r 100 1609', 12382 'STATE 2 r 29 1610', 12383 'STATE 1 f 100 68', 12384 'STATE 1 f 100 1611', 12385 'STATE 5 y 1613 1612', 12386 'STATE 3 h 100 1614', 12387 'STATE 2 l 68 1615', 12388 'STATE 3 i 100 1616', 12389 'STATE 6 o 100 29', 12390 'STATE 5 u 1618 1617', 12391 'STATE 6 l 230 1619', 12392 'STATE 6 e 1621 1620', 12393 'STATE 4 d 230 100', 12394 'STATE 5 m 100 1622', 12395 'STATE 6 l 68 1623', 12396 'STATE 6 r 100 1624', 12397 'STATE 6 e 100 1625', 12398 'STATE 5 k 100 1626', 12399 'STATE 5 b 230 1627', 12400 'STATE 4 d 100 1628', 12401 'STATE 6 i 29 68', 12402 'STATE 1 p 68 1629', 12403 'STATE 2 o 68 1630', 12404 'STATE 3 w 68 82', 12405 'STATE 4 n 1631 68', 12406 'STATE 2 t 68 1632', 12407 'STATE 4 v 100 1633', 12408 'STATE 4 p 68 100', 12409 'STATE 3 r 1634 1120', 12410 'STATE 3 r 68 1289', 12411 'STATE 3 g 42 68', 12412 'STATE 5 a 1636 1635', 12413 'STATE 3 n 68 100', 12414 'STATE 4 d 29 1637', 12415 'STATE 6 o 100 1638', 12416 'STATE 4 s 100 1101', 12417 'STATE 5 n 68 29', 12418 'STATE 6 f 562 1639', 12419 'STATE 6 s 29 1640', 12420 'STATE 5 y 1642 1641', 12421 'STATE 5 l 1644 1643', 12422 'STATE 5 l 230 72', 12423 'STATE 5 t 1646 1645', 12424 'STATE 6 l 100 1647', 12425 'STATE 6 a 1511 100', 12426 'STATE 3 m 230 100', 12427 'STATE 3 l 42 1648', 12428 'STATE 6 i 29 1649', 12429 'STATE 6 e 28 1650', 12430 'STATE 3 i 29 1651', 12431 'STATE 4 n 68 1493', 12432 'STATE 4 n 100 1652', 12433 'STATE 4 m 230 1653', 12434 'STATE 3 c 68 529', 12435 'STATE 6 r 1655 1654', 12436 'STATE 3 m 100 1656', 12437 'STATE 6 r 68 230', 12438 'STATE 3 f 68 1657', 12439 'STATE 3 n 230 1511', 12440 'STATE 3 l 230 1658', 12441 'STATE 5 t 1660 1659', 12442 'STATE 6 i 100 1661', 12443 'STATE 6 t 68 100', 12444 'STATE 5 l 1663 1662', 12445 'STATE 5 l 100 42', 12446 'STATE 3 g 100 1185', 12447 'STATE 6 i 100 230', 12448 'STATE 6 n 68 100', 12449 'STATE 6 d 100 1664', 12450 'STATE 5 l 29 1665', 12451 'STATE 2 q 29 1666', 12452 'STATE 2 s 42 68', 12453 'STATE 3 s 100 1667', 12454 'STATE 6 k 29 1668', 12455 'STATE 4 b 42 1669', 12456 'STATE 3 w 230 1670', 12457 'STATE 2 # 230 100', 12458 'STATE 3 n 29 1671', 12459 'STATE 2 a 68 1672', 12460 'STATE 2 c 68 100', 12461 'STATE 1 d 100 1673', 12462 'STATE 3 m 100 1674', 12463 'STATE 2 o 1676 1675', 12464 'STATE 2 g 42 1677', 12465 'STATE 1 e 100 68', 12466 'STATE 4 n 42 1678', 12467 'STATE 4 l 100 230', 12468 'STATE 2 g 68 1679', 12469 'STATE 4 v 42 100', 12470 'STATE 2 c 42 1680', 12471 'STATE 2 s 42 1681', 12472 'STATE 4 t 273 1682', 12473 'STATE 6 r 68 1683', 12474 'STATE 4 v 1685 1684', 12475 'STATE 3 n 100 1686', 12476 'STATE 4 d 68 1687', 12477 'STATE 2 t 1688 42', 12478 'STATE 3 h 1690 1689', 12479 'STATE 3 c 68 1691', 12480 'STATE 1 e 42 1692', 12481 'STATE 2 o 42 1693', 12482 'STATE 2 e 42 1694', 12483 'STATE 3 d 247 1695', 12484 'STATE 3 t 63 1696', 12485 'STATE 6 z 82 63', 12486 'STATE 4 v 230 1697', 12487 'STATE 3 n 562 1698', 12488 'STATE 2 t 68 1699', 12489 'STATE 2 r 68 1700', 12490 'STATE 3 u 230 1701', 12491 'STATE 1 r 562 68', 12492 'STATE 2 a 1703 1702', 12493 'STATE 3 z 28 1704', 12494 'STATE 3 a 29 1705', 12495 'STATE 3 s 28 29', 12496 'STATE 3 a 29 1706', 12497 'STATE 2 a 28 230', 12498 'STATE 1 m 28 29', 12499 'STATE 3 t 29 1707', 12500 'STATE 2 s 26 1708', 12501 'STATE 3 f 29 1709', 12502 'STATE 3 p 29 1710', 12503 'STATE 3 s 29 1711', 12504 'STATE 3 t 29 1712', 12505 'STATE 5 l 29 1713', 12506 'STATE 6 n 28 1714', 12507 'STATE 2 a 1716 1715', 12508 'STATE 6 # 42 28', 12509 'STATE 5 k 100 1717', 12510 'STATE 4 c 1719 1718', 12511 'STATE 4 c 1721 1720', 12512 'STATE 1 h 68 100', 12513 'STATE 2 a 29 1722', 12514 'STATE 5 t 68 1723', 12515 'STATE 3 n 29 1724', 12516 'STATE 5 k 82 100', 12517 'STATE 2 e 154 68', 12518 'STATE 2 n 82 154', 12519 'STATE 2 a 1726 1725', 12520 'STATE 6 l 1728 1727', 12521 'STATE 6 k 100 1729', 12522 'STATE 6 r 230 1730', 12523 'STATE 5 n 68 1731', 12524 'STATE 2 s 100 1732', 12525 'STATE 3 i 29 1733', 12526 'STATE 2 d 1735 1734', 12527 'STATE 3 i 68 1736', 12528 'STATE 2 l 42 68', 12529 'STATE 3 r 1738 1737', 12530 'STATE 1 g 68 1739', 12531 'STATE 1 i 29 100', 12532 'STATE 5 h 1741 1740', 12533 'STATE 4 b 68 1742', 12534 'STATE 4 g 100 1743', 12535 'STATE 6 a 68 1744', 12536 'STATE 4 g 68 29', 12537 'STATE 5 b 1745 100', 12538 'STATE 6 s 68 1746', 12539 'STATE 5 a 100 1747', 12540 'STATE 6 o 562 100', 12541 'STATE 6 e 1749 1748', 12542 'STATE 5 v 230 100', 12543 'STATE 4 t 100 1750', 12544 'STATE 6 o 1752 1751', 12545 'STATE 2 r 68 1753', 12546 'STATE 6 v 100 1754', 12547 'STATE 6 n 68 29', 12548 'STATE 4 d 68 1755', 12549 'STATE 2 e 42 68', 12550 'STATE 5 o 1757 1756', 12551 'STATE 6 # 608 1758', 12552 'STATE 5 t 29 1759', 12553 'STATE 4 p 100 1760', 12554 'STATE 6 g 562 1761', 12555 'STATE 6 i 100 68', 12556 'STATE 5 u 1763 1762', 12557 'STATE 6 # 42 1764', 12558 'STATE 3 c 1766 1765', 12559 'STATE 4 c 68 1767', 12560 'STATE 5 u 1769 1768', 12561 'STATE 3 s 1770 100', 12562 'STATE 6 i 100 1771', 12563 'STATE 3 d 42 625', 12564 'STATE 5 u 100 1772', 12565 'STATE 3 k 28 1773', 12566 'STATE 3 z 68 1774', 12567 'STATE 4 g 230 1775', 12568 'STATE 4 f 100 230', 12569 'STATE 3 c 1777 1776', 12570 'STATE 4 d 42 1778', 12571 'STATE 4 m 68 1779', 12572 'STATE 3 p 100 1780', 12573 'STATE 4 t 42 1781', 12574 'STATE 5 k 1783 1782', 12575 'STATE 3 s 82 1784', 12576 'STATE 6 r 562 1785', 12577 'STATE 3 f 82 1786', 12578 'STATE 3 c 82 1787', 12579 'STATE 6 m 100 1788', 12580 'STATE 5 d 29 1789', 12581 'STATE 6 m 1791 1790', 12582 'STATE 4 k 29 1792', 12583 'STATE 6 l 1794 1793', 12584 'STATE 4 t 68 100', 12585 'STATE 3 d 1796 1795', 12586 'STATE 4 t 100 1797', 12587 'STATE 3 h 100 1798', 12588 'STATE 1 0 100 1799', 12589 'STATE 4 p 42 100', 12590 'STATE 4 d 512 1800', 12591 'STATE 3 m 230 68', 12592 'STATE 1 p 42 1801', 12593 'STATE 3 r 1803 1802', 12594 'STATE 2 h 68 1804', 12595 'STATE 5 g 1806 1805', 12596 'STATE 6 k 1808 1807', 12597 'STATE 4 p 42 1809', 12598 'STATE 2 a 68 1810', 12599 'STATE 6 t 68 1811', 12600 'STATE 6 n 230 100', 12601 'STATE 3 c 68 1812', 12602 'STATE 2 d 68 1813', 12603 'STATE 4 v 100 42', 12604 'STATE 6 e 100 1814', 12605 'STATE 4 b 100 1815', 12606 'STATE 3 g 68 1816', 12607 'STATE 4 m 42 1817', 12608 'STATE 1 o 42 1818', 12609 'STATE 3 c 42 29', 12610 'STATE 2 a 247 1819', 12611 'STATE 3 h 773 1820', 12612 'STATE 3 a 29 1821', 12613 'STATE 3 r 562 100', 12614 'STATE 3 d 68 1822', 12615 'STATE 2 s 68 1823', 12616 'STATE 2 t 1825 1824', 12617 'STATE 6 l 28 1826', 12618 'STATE 6 a 29 1827', 12619 'STATE 1 r 29 28', 12620 'STATE 3 n 1829 1828', 12621 'STATE 5 d 1831 1830', 12622 'STATE 2 l 29 1832', 12623 'STATE 2 e 28 1833', 12624 'STATE 3 l 29 1834', 12625 'STATE 2 # 1314 230', 12626 'STATE 3 d 29 1835', 12627 'STATE 3 p 29 1836', 12628 'STATE 3 v 230 1837', 12629 'STATE 3 g 28 1838', 12630 'STATE 5 y 1840 1839', 12631 'STATE 4 o 28 1841', 12632 'STATE 4 b 29 1842', 12633 'STATE 6 # 68 29', 12634 'STATE 1 e 1844 1843', 12635 'STATE 6 e 100 1845', 12636 'STATE 2 m 1846 100', 12637 'STATE 6 a 29 100', 12638 'STATE 5 v 29 1847', 12639 'STATE 6 i 29 1059', 12640 'STATE 2 i 1849 1848', 12641 'STATE 6 n 1851 1850', 12642 'STATE 2 c 1853 1852', 12643 'STATE 5 t 1854 100', 12644 'STATE 2 x 100 1855', 12645 'STATE 6 n 100 1856', 12646 'STATE 1 a 100 29', 12647 'STATE 1 e 100 1857', 12648 'STATE 1 n 100 1858', 12649 'STATE 1 n 68 1859', 12650 'STATE 3 v 100 68', 12651 'STATE 5 t 1861 1860', 12652 'STATE 3 i 68 1862', 12653 'STATE 1 e 562 1863', 12654 'STATE 1 c 68 1864', 12655 'STATE 4 s 1866 1865', 12656 'STATE 4 s 100 1867', 12657 'STATE 6 l 68 1868', 12658 'STATE 6 i 68 1869', 12659 'STATE 6 u 230 68', 12660 'STATE 6 i 562 1205', 12661 'STATE 6 r 100 1870', 12662 'STATE 5 c 1871 100', 12663 'STATE 6 a 1873 1872', 12664 'STATE 5 v 230 1874', 12665 'STATE 4 p 68 1875', 12666 'STATE 6 u 68 1876', 12667 'STATE 2 e 29 1877', 12668 'STATE 3 h 1879 1878', 12669 'STATE 1 r 230 68', 12670 'STATE 4 b 68 1880', 12671 'STATE 3 a 29 1881', 12672 'STATE 6 # 29 1882', 12673 'STATE 4 h 28 1883', 12674 'STATE 2 q 100 1884', 12675 'STATE 4 c 100 1885', 12676 'STATE 6 i 562 100', 12677 'STATE 6 a 1887 1886', 12678 'STATE 6 # 29 1888', 12679 'STATE 4 t 29 1889', 12680 'STATE 5 u 1891 1890', 12681 'STATE 5 t 230 1892', 12682 'STATE 4 b 42 1893', 12683 'STATE 5 y 100 1894', 12684 'STATE 6 s 42 1895', 12685 'STATE 6 o 230 1185', 12686 'STATE 5 n 562 1896', 12687 'STATE 3 m 100 1897', 12688 'STATE 6 # 28 42', 12689 'STATE 6 b 100 1898', 12690 'STATE 4 t 68 1899', 12691 'STATE 4 j 68 1900', 12692 'STATE 4 p 68 1901', 12693 'STATE 3 c 230 1902', 12694 'STATE 3 c 1904 1903', 12695 'STATE 3 h 100 1905', 12696 'STATE 3 c 42 1906', 12697 'STATE 5 l 1908 1907', 12698 'STATE 6 o 100 1909', 12699 'STATE 6 o 29 1910', 12700 'STATE 6 u 562 100', 12701 'STATE 3 s 42 100', 12702 'STATE 3 v 100 1911', 12703 'STATE 3 m 68 1685', 12704 'STATE 5 a 29 1912', 12705 'STATE 6 l 1914 1913', 12706 'STATE 2 a 68 28', 12707 'STATE 2 r 68 1915', 12708 'STATE 2 d 68 1916', 12709 'STATE 3 r 1917 68', 12710 'STATE 3 t 100 1918', 12711 'STATE 6 d 42 68', 12712 'STATE 3 l 100 1554', 12713 'STATE 2 o 230 1919', 12714 'STATE 4 v 100 29', 12715 'STATE 4 l 68 1920', 12716 'STATE 4 f 230 1921', 12717 'STATE 3 k 1923 1922', 12718 'STATE 4 b 68 42', 12719 'STATE 3 r 42 1924', 12720 'STATE 6 e 42 1925', 12721 'STATE 3 d 42 28', 12722 'STATE 6 l 1927 1926', 12723 'STATE 4 c 68 1928', 12724 'STATE 2 a 68 1929', 12725 'STATE 3 h 68 100', 12726 'STATE 4 l 68 1930', 12727 'STATE 4 b 68 1931', 12728 'STATE 2 b 100 29', 12729 'STATE 4 c 1047 1932', 12730 'STATE 6 r 100 1281', 12731 'STATE 3 r 100 1933', 12732 'STATE 4 s 68 42', 12733 'STATE 2 p 42 1934', 12734 'STATE 1 r 247 1935', 12735 'STATE 3 b 63 1936', 12736 'STATE 3 c 100 1937', 12737 'STATE 2 l 68 1938', 12738 'STATE 3 l 68 1939', 12739 'STATE 3 p 100 1940', 12740 'STATE 3 r 100 68', 12741 'STATE 6 t 1942 1941', 12742 'STATE 6 i 28 29', 12743 'STATE 2 l 1944 1943', 12744 'STATE 1 o 29 28', 12745 'STATE 5 s 28 29', 12746 'STATE 3 i 28 1945', 12747 'STATE 6 e 29 1946', 12748 'STATE 3 h 28 1947', 12749 'STATE 3 t 29 1948', 12750 'STATE 3 j 29 1949', 12751 'STATE 2 # 1950 29', 12752 'STATE 3 c 29 1951', 12753 'STATE 3 l 100 230', 12754 'STATE 3 w 1953 1952', 12755 'STATE 4 c 68 1954', 12756 'STATE 6 i 1956 1955', 12757 'STATE 4 g 100 1957', 12758 'STATE 2 r 230 1958', 12759 'STATE 2 n 230 1959', 12760 'STATE 6 a 1961 1960', 12761 'STATE 6 # 562 100', 12762 'STATE 1 d 100 1962', 12763 'STATE 6 g 100 1963', 12764 'STATE 3 y 230 68', 12765 'STATE 6 k 230 1964', 12766 'STATE 3 t 230 68', 12767 'STATE 1 r 100 1965', 12768 'STATE 1 r 68 100', 12769 'STATE 1 i 100 68', 12770 'STATE 3 m 68 1966', 12771 'STATE 6 h 100 68', 12772 'STATE 1 o 100 1967', 12773 'STATE 3 r 29 1968', 12774 'STATE 1 r 68 1969', 12775 'STATE 5 s 68 100', 12776 'STATE 2 p 100 1970', 12777 'STATE 2 e 100 1971', 12778 'STATE 1 s 68 1972', 12779 'STATE 2 o 68 1973', 12780 'STATE 6 r 1975 1974', 12781 'STATE 5 s 68 1976', 12782 'STATE 6 i 68 1977', 12783 'STATE 6 n 68 1978', 12784 'STATE 4 b 68 1979', 12785 'STATE 6 d 230 100', 12786 'STATE 6 h 100 1980', 12787 'STATE 5 g 562 100', 12788 'STATE 5 v 100 1981', 12789 'STATE 5 g 100 1982', 12790 'STATE 4 s 68 1983', 12791 'STATE 6 a 1985 1984', 12792 'STATE 1 0 100 1986', 12793 'STATE 3 g 68 1987', 12794 'STATE 2 s 68 1988', 12795 'STATE 4 m 68 1989', 12796 'STATE 5 y 1991 1990', 12797 'STATE 2 o 68 1992', 12798 'STATE 3 p 230 1993', 12799 'STATE 2 g 29 1994', 12800 'STATE 4 s 1996 1995', 12801 'STATE 5 r 1998 1997', 12802 'STATE 4 j 2000 1999', 12803 'STATE 3 m 2002 2001', 12804 'STATE 3 b 42 2003', 12805 'STATE 5 h 2005 2004', 12806 'STATE 4 g 42 100', 12807 'STATE 4 p 230 100', 12808 'STATE 3 l 42 1674', 12809 'STATE 3 h 100 2006', 12810 'STATE 6 e 230 100', 12811 'STATE 5 v 562 2007', 12812 'STATE 6 # 100 29', 12813 'STATE 4 n 2009 2008', 12814 'STATE 4 m 68 2010', 12815 'STATE 6 t 2012 2011', 12816 'STATE 4 s 1870 68', 12817 'STATE 3 h 100 2013', 12818 'STATE 4 b 230 2014', 12819 'STATE 4 v 100 230', 12820 'STATE 3 k 100 2015', 12821 'STATE 3 h 42 2016', 12822 'STATE 5 s 2018 2017', 12823 'STATE 6 a 100 2019', 12824 'STATE 3 t 82 2020', 12825 'STATE 6 h 100 2021', 12826 'STATE 3 g 100 2022', 12827 'STATE 4 f 29 2023', 12828 'STATE 2 a 68 2024', 12829 'STATE 3 f 100 68', 12830 'STATE 4 t 68 2025', 12831 'STATE 6 r 68 2026', 12832 'STATE 4 z 68 100', 12833 'STATE 4 s 2028 2027', 12834 'STATE 3 d 100 2029', 12835 'STATE 1 o 68 2030', 12836 'STATE 2 a 230 68', 12837 'STATE 4 s 42 2031', 12838 'STATE 4 l 68 100', 12839 'STATE 2 s 42 2032', 12840 'STATE 2 # 2034 2033', 12841 'STATE 4 d 68 2035', 12842 'STATE 4 n 2037 2036', 12843 'STATE 4 n 68 29', 12844 'STATE 3 s 42 2038', 12845 'STATE 4 c 68 2039', 12846 'STATE 2 c 68 2040', 12847 'STATE 4 x 100 2041', 12848 'STATE 3 s 68 2042', 12849 'STATE 3 s 42 2043', 12850 'STATE 1 a 2045 2044', 12851 'STATE 5 b 63 2046', 12852 'STATE 3 t 2048 2047', 12853 'STATE 3 n 68 2049', 12854 'STATE 1 p 68 2050', 12855 'STATE 3 b 68 2051', 12856 'STATE 2 c 29 2052', 12857 'STATE 3 h 2053 29', 12858 'STATE 2 h 28 2054', 12859 'STATE 1 a 230 28', 12860 'STATE 3 k 28 2055', 12861 'STATE 3 b 29 2056', 12862 'STATE 6 n 28 2057', 12863 'STATE 3 k 29 2058', 12864 'STATE 3 t 29 2059', 12865 'STATE 3 c 29 2060', 12866 'STATE 5 b 29 2061', 12867 'STATE 5 u 2063 2062', 12868 'STATE 2 o 68 2064', 12869 'STATE 6 # 2065 68', 12870 'STATE 4 s 2067 2066', 12871 'STATE 1 p 42 2068', 12872 'STATE 2 m 100 2069', 12873 'STATE 1 i 29 2070', 12874 'STATE 2 r 29 230', 12875 'STATE 3 c 100 2071', 12876 'STATE 1 d 68 100', 12877 'STATE 6 a 2073 2072', 12878 'STATE 4 f 230 2074', 12879 'STATE 3 k 230 2075', 12880 'STATE 5 d 2077 2076', 12881 'STATE 2 t 100 68', 12882 'STATE 3 l 68 100', 12883 'STATE 3 l 2078 100', 12884 'STATE 3 d 68 2079', 12885 'STATE 2 u 68 2080', 12886 'STATE 1 o 68 1986', 12887 'STATE 2 b 100 68', 12888 'STATE 1 s 100 1854', 12889 'STATE 4 h 29 2081', 12890 'STATE 4 g 68 2082', 12891 'STATE 5 y 42 2083', 12892 'STATE 4 c 100 2084', 12893 'STATE 4 c 68 2085', 12894 'STATE 6 t 100 2086', 12895 'STATE 6 e 100 230', 12896 'STATE 5 b 100 2087', 12897 'STATE 5 b 100 562', 12898 'STATE 4 f 68 1285', 12899 'STATE 6 e 2089 2088', 12900 'STATE 1 a 100 1403', 12901 'STATE 2 i 68 100', 12902 'STATE 3 w 82 2090', 12903 'STATE 2 c 68 82', 12904 'STATE 4 n 68 2091', 12905 'STATE 6 e 2093 2092', 12906 'STATE 6 # 42 100', 12907 'STATE 4 v 2095 2094', 12908 'STATE 3 m 68 2096', 12909 'STATE 6 # 29 230', 12910 'STATE 3 r 68 2097', 12911 'STATE 3 n 230 100', 12912 'STATE 3 m 2099 2098', 12913 'STATE 4 t 2101 2100', 12914 'STATE 3 m 2103 2102', 12915 'PHONE ay1', 12916 'STATE 4 k 68 2104', 12917 'STATE 4 t 68 1917', 12918 'STATE 4 d 42 100', 12919 'STATE 5 r 1786 2105', 12920 'STATE 3 f 29 2106', 12921 'STATE 6 o 2108 2107', 12922 'STATE 5 c 100 2109', 12923 'STATE 3 n 2028 2110', 12924 'STATE 3 j 68 100', 12925 'STATE 4 p 230 2111', 12926 'STATE 4 c 2113 2112', 12927 'STATE 4 b 29 1838', 12928 'STATE 4 h 29 2114', 12929 'STATE 4 s 68 230', 12930 'STATE 3 b 68 100', 12931 'STATE 3 m 68 2115', 12932 'STATE 5 z 2117 2116', 12933 'STATE 3 f 82 2020', 12934 'STATE 6 u 2119 2118', 12935 'STATE 3 b 82 100', 12936 'STATE 3 b 100 82', 12937 'STATE 3 t 82 100', 12938 'STATE 5 h 29 2120', 12939 'STATE 4 v 230 2121', 12940 'STATE 3 t 1285 2122', 12941 'STATE 2 s 230 100', 12942 'STATE 3 f 68 2123', 12943 'STATE 6 l 230 68', 12944 'STATE 2 # 2125 2124', 12945 'STATE 2 a 68 2126', 12946 'STATE 3 s 2128 2127', 12947 'STATE 2 b 42 2129', 12948 'STATE 1 # 42 2130', 12949 'STATE 6 l 42 2131', 12950 'STATE 6 m 42 2132', 12951 'STATE 2 n 68 2133', 12952 'STATE 2 m 100 230', 12953 'STATE 4 v 230 2134', 12954 'STATE 6 r 29 68', 12955 'STATE 2 a 2136 2135', 12956 'STATE 3 c 2138 2137', 12957 'STATE 3 n 42 2139', 12958 'STATE 3 r 42 2140', 12959 'STATE 2 i 247 68', 12960 'STATE 2 n 247 2141', 12961 'STATE 6 c 63 2142', 12962 'STATE 2 a 2144 2143', 12963 'STATE 4 d 68 2145', 12964 'STATE 2 i 68 2146', 12965 'STATE 1 h 68 2147', 12966 'STATE 1 r 68 2148', 12967 'STATE 3 n 2150 2149', 12968 'STATE 1 e 230 2151', 12969 'STATE 3 y 29 2152', 12970 'STATE 1 r 2154 2153', 12971 'STATE 3 h 2156 2155', 12972 'STATE 3 t 28 29', 12973 'STATE 3 m 2157 29', 12974 'STATE 3 f 29 2158', 12975 'STATE 5 g 230 29', 12976 'STATE 2 # 29 2159', 12977 'STATE 1 s 2161 2160', 12978 'STATE 6 l 2163 2162', 12979 'STATE 5 h 29 2164', 12980 'STATE 4 d 42 68', 12981 'STATE 6 e 68 2165', 12982 'STATE 6 # 2167 2166', 12983 'STATE 4 s 29 2168', 12984 'STATE 4 s 68 100', 12985 'STATE 2 h 29 2169', 12986 'STATE 2 c 100 2170', 12987 'STATE 5 u 1735 2171', 12988 'STATE 5 c 230 100', 12989 'STATE 1 s 29 2172', 12990 'STATE 6 s 29 68', 12991 'STATE 2 i 100 2173', 12992 'STATE 3 l 2175 2174', 12993 'STATE 6 h 68 29', 12994 'STATE 1 m 2176 68', 12995 'STATE 3 n 68 2177', 12996 'STATE 4 p 2179 2178', 12997 'STATE 4 b 68 2180', 12998 'STATE 6 h 100 2181', 12999 'STATE 6 a 2183 2182', 13000 'STATE 6 a 29 2184', 13001 'STATE 6 p 68 2185', 13002 'STATE 5 c 100 562', 13003 'STATE 6 i 100 2186', 13004 'STATE 1 0 100 2187', 13005 'STATE 3 n 68 2188', 13006 'STATE 4 l 68 1493', 13007 'STATE 5 r 2190 2189', 13008 'STATE 2 i 68 2191', 13009 'STATE 6 s 42 2192', 13010 'STATE 2 f 42 68', 13011 'STATE 2 g 2194 2193', 13012 'STATE 4 n 2195 68', 13013 'STATE 6 u 2197 2196', 13014 'STATE 4 c 2199 2198', 13015 'STATE 4 v 100 2200', 13016 'STATE 3 m 42 2201', 13017 'STATE 3 c 2203 2202', 13018 'STATE 4 c 2205 2204', 13019 'STATE 3 y 29 2206', 13020 'STATE 4 s 2208 2207', 13021 'STATE 4 c 2210 2209', 13022 'STATE 3 m 2212 2211', 13023 'STATE 5 k 100 2213', 13024 'STATE 5 m 562 2214', 13025 'STATE 6 t 100 2215', 13026 'STATE 3 m 42 2216', 13027 'STATE 3 y 29 2217', 13028 'STATE 3 m 68 230', 13029 'STATE 4 z 2219 2218', 13030 'STATE 4 g 42 230', 13031 'STATE 5 h 562 100', 13032 'STATE 3 s 82 230', 13033 'STATE 3 b 2221 2220', 13034 'STATE 3 h 68 2222', 13035 'STATE 4 m 29 2223', 13036 'STATE 2 o 68 2224', 13037 'STATE 1 e 68 2225', 13038 'STATE 3 m 68 2226', 13039 'STATE 3 c 100 2227', 13040 'STATE 4 n 100 2228', 13041 'STATE 4 n 100 2229', 13042 'STATE 4 b 100 2230', 13043 'STATE 4 v 230 68', 13044 'STATE 4 m 68 193', 13045 'STATE 6 i 28 42', 13046 'STATE 3 r 42 2231', 13047 'STATE 6 g 100 2232', 13048 'STATE 2 a 68 2233', 13049 'STATE 1 r 29 2234', 13050 'STATE 4 n 100 2235', 13051 'STATE 3 m 29 68', 13052 'STATE 3 t 2237 2236', 13053 'STATE 6 g 100 2238', 13054 'STATE 3 f 42 100', 13055 'STATE 4 v 42 2239', 13056 'STATE 2 c 247 2240', 13057 'STATE 3 k 82 2241', 13058 'STATE 1 a 2243 2242', 13059 'STATE 3 b 230 1423', 13060 'STATE 4 g 100 2244', 13061 'STATE 1 i 68 2245', 13062 'STATE 1 k 68 2246', 13063 'STATE 2 u 68 2247', 13064 'STATE 1 a 2249 2248', 13065 'STATE 5 d 909 230', 13066 'STATE 2 c 230 2250', 13067 'STATE 3 f 230 2251', 13068 'STATE 1 b 29 2252', 13069 'STATE 2 e 29 28', 13070 'STATE 2 c 29 230', 13071 'STATE 1 o 230 2253', 13072 'STATE 5 s 230 29', 13073 'STATE 5 s 29 2254', 13074 'STATE 5 n 230 29', 13075 'STATE 6 # 2256 2255', 13076 'STATE 3 i 247 2257', 13077 'STATE 4 t 2259 2258', 13078 'STATE 4 c 100 2260', 13079 'STATE 4 t 29 154', 13080 'STATE 4 g 2262 2261', 13081 'STATE 6 e 100 2263', 13082 'STATE 5 h 247 100', 13083 'STATE 3 r 29 100', 13084 'STATE 6 # 905 29', 13085 'STATE 6 i 100 2264', 13086 'STATE 2 n 100 2265', 13087 'STATE 4 d 2267 2266', 13088 'STATE 2 o 2269 2268', 13089 'STATE 2 g 562 2270', 13090 'STATE 2 e 68 2271', 13091 'STATE 2 b 68 100', 13092 'STATE 2 i 68 782', 13093 'STATE 5 t 2273 2272', 13094 'STATE 5 p 2274 100', 13095 'STATE 5 c 68 2275', 13096 'STATE 6 o 68 2276', 13097 'STATE 4 d 68 2277', 13098 'STATE 4 t 100 68', 13099 'STATE 4 q 100 1532', 13100 'STATE 6 d 100 2278', 13101 'STATE 6 g 100 82', 13102 'STATE 3 v 68 2279', 13103 'STATE 1 a 68 2280', 13104 'STATE 3 h 2282 2281', 13105 'STATE 4 g 42 2283', 13106 'STATE 5 l 2285 2284', 13107 'STATE 4 t 2287 2286', 13108 'STATE 4 n 2289 2288', 13109 'STATE 4 n 230 100', 13110 'STATE 5 d 68 29', 13111 'STATE 6 o 2291 2290', 13112 'STATE 5 q 2293 2292', 13113 'STATE 5 h 100 2294', 13114 'STATE 5 h 2296 2295', 13115 'STATE 3 l 230 2297', 13116 'STATE 3 p 1204 100', 13117 'STATE 5 k 2299 2298', 13118 'STATE 4 m 230 2300', 13119 'STATE 4 s 100 2301', 13120 'STATE 5 c 100 2302', 13121 'STATE 3 k 29 2303', 13122 'STATE 3 m 2304 100', 13123 'STATE 5 s 100 2305', 13124 'STATE 4 t 2306 100', 13125 'STATE 3 b 29 100', 13126 'STATE 3 l 100 2307', 13127 'STATE 5 c 2308 100', 13128 'STATE 3 p 230 100', 13129 'STATE 6 a 100 2309', 13130 'STATE 6 d 230 2310', 13131 'STATE 4 s 100 68', 13132 'STATE 6 g 100 2311', 13133 'STATE 3 s 2313 2312', 13134 'STATE 3 n 230 68', 13135 'STATE 6 s 82 2314', 13136 'STATE 6 o 68 2315', 13137 'STATE 3 g 230 100', 13138 'STATE 6 o 82 2316', 13139 'STATE 6 r 100 2317', 13140 'STATE 2 u 68 2318', 13141 'STATE 4 m 2320 2319', 13142 'STATE 4 g 100 2321', 13143 'STATE 3 c 100 2322', 13144 'STATE 4 c 68 596', 13145 'STATE 4 l 100 2323', 13146 'STATE 5 t 42 2324', 13147 'STATE 2 c 100 2325', 13148 'STATE 2 o 68 2326', 13149 'STATE 2 t 68 2327', 13150 'STATE 3 l 2287 29', 13151 'STATE 3 l 2329 2328', 13152 'STATE 6 r 2330 100', 13153 'STATE 4 m 100 2331', 13154 'STATE 3 t 42 2332', 13155 'STATE 6 # 247 68', 13156 'STATE 3 l 2334 2333', 13157 'STATE 4 f 68 2335', 13158 'STATE 4 d 29 2336', 13159 'STATE 4 t 100 562', 13160 'STATE 2 s 562 2337', 13161 'STATE 1 r 68 2338', 13162 'STATE 3 d 68 2339', 13163 'STATE 6 h 29 2340', 13164 'STATE 2 n 28 29', 13165 'STATE 1 r 230 29', 13166 'STATE 3 b 29 2341', 13167 'STATE 1 h 28 2342', 13168 'STATE 2 n 29 2343', 13169 'STATE 3 m 29 2344', 13170 'STATE 4 p 2346 2345', 13171 'STATE 4 h 68 2347', 13172 'STATE 2 q 29 2348', 13173 'STATE 6 a 29 2349', 13174 'STATE 2 n 100 2350', 13175 'STATE 1 n 100 230', 13176 'STATE 4 z 29 2351', 13177 'STATE 1 p 68 2352', 13178 'STATE 6 o 29 1722', 13179 'STATE 2 s 2354 2353', 13180 'STATE 3 v 68 2355', 13181 'STATE 1 m 2357 2356', 13182 'STATE 3 r 68 230', 13183 'STATE 6 r 68 2358', 13184 'STATE 1 i 29 2359', 13185 'STATE 6 t 68 2360', 13186 'STATE 6 i 100 2361', 13187 'STATE 6 e 2363 2362', 13188 'STATE 4 t 2364 100', 13189 'STATE 6 o 68 2365', 13190 'STATE 4 p 68 2366', 13191 'STATE 5 c 2365 2367', 13192 'STATE 6 e 100 2368', 13193 'STATE 4 p 68 2369', 13194 'STATE 2 c 100 82', 13195 'STATE 3 t 68 82', 13196 'STATE 3 y 2371 2370', 13197 'STATE 5 u 29 2372', 13198 'STATE 4 h 29 100', 13199 'STATE 3 h 2374 2373', 13200 'STATE 4 b 42 2375', 13201 'STATE 3 r 2377 2376', 13202 'STATE 2 p 68 100', 13203 'STATE 4 c 42 2378', 13204 'STATE 2 b 100 2379', 13205 'STATE 6 i 2381 2380', 13206 'STATE 5 k 2299 2382', 13207 'STATE 5 s 100 2383', 13208 'STATE 3 p 230 2384', 13209 'STATE 4 z 230 2385', 13210 'STATE 5 k 100 68', 13211 'STATE 6 i 247 68', 13212 'STATE 3 g 230 2386', 13213 'STATE 5 h 2388 2387', 13214 'STATE 4 c 100 29', 13215 'STATE 5 c 562 2389', 13216 'STATE 4 m 29 2390', 13217 'STATE 5 h 100 68', 13218 'STATE 3 n 100 2391', 13219 'STATE 4 c 68 2392', 13220 'STATE 3 h 42 2393', 13221 'STATE 3 m 100 2394', 13222 'STATE 3 c 2396 2395', 13223 'STATE 6 i 230 100', 13224 'STATE 6 e 562 2397', 13225 'STATE 4 v 230 2398', 13226 'STATE 6 d 100 2399', 13227 'STATE 3 m 68 2400', 13228 'STATE 4 m 100 230', 13229 'STATE 6 m 82 2401', 13230 'STATE 6 i 100 82', 13231 'STATE 6 e 82 29', 13232 'STATE 1 m 68 100', 13233 'STATE 4 m 29 2402', 13234 'STATE 4 l 2404 2403', 13235 'STATE 3 c 68 2405', 13236 'STATE 2 g 100 2406', 13237 'STATE 4 v 100 273', 13238 'STATE 3 l 2408 2407', 13239 'STATE 6 i 42 2409', 13240 'STATE 6 a 2411 2410', 13241 'STATE 4 b 230 68', 13242 'STATE 2 e 68 2412', 13243 'STATE 4 f 42 2413', 13244 'STATE 6 r 2330 2414', 13245 'STATE 4 v 230 42', 13246 'STATE 6 b 42 2415', 13247 'STATE 1 h 42 2416', 13248 'STATE 5 s 82 2417', 13249 'STATE 5 d 82 63', 13250 'STATE 4 b 100 2418', 13251 'STATE 4 t 562 2419', 13252 'STATE 1 a 562 68', 13253 'STATE 2 o 562 68', 13254 'STATE 1 l 68 2420', 13255 'STATE 3 i 29 2421', 13256 'STATE 3 m 2423 2422', 13257 'STATE 2 r 2425 2424', 13258 'STATE 1 i 230 2426', 13259 'STATE 3 b 2427 29', 13260 'STATE 5 r 2429 2428', 13261 'STATE 6 i 100 2430', 13262 'STATE 5 z 1669 2431', 13263 'STATE 3 r 100 2432', 13264 'STATE 6 # 29 558', 13265 'STATE 3 r 68 2433', 13266 'STATE 1 p 68 2434', 13267 'STATE 6 a 29 230', 13268 'STATE 2 d 100 2435', 13269 'STATE 3 t 562 100', 13270 'STATE 6 u 100 2436', 13271 'STATE 4 z 100 68', 13272 'STATE 2 c 100 896', 13273 'STATE 3 l 2438 2437', 13274 'STATE 6 o 29 2439', 13275 'STATE 1 a 100 2440', 13276 'STATE 6 e 1854 29', 13277 'STATE 4 c 2442 2441', 13278 'STATE 5 c 562 2443', 13279 'STATE 6 i 100 2444', 13280 'STATE 6 e 68 100', 13281 'STATE 4 t 68 2445', 13282 'STATE 6 a 100 2446', 13283 'STATE 6 l 562 100', 13284 'STATE 4 h 68 2447', 13285 'STATE 2 o 1825 2448', 13286 'STATE 5 t 68 100', 13287 'STATE 2 b 29 2449', 13288 'STATE 5 c 2451 2450', 13289 'STATE 5 g 42 2452', 13290 'STATE 3 h 100 2453', 13291 'STATE 3 l 100 2454', 13292 'STATE 6 n 100 2455', 13293 'STATE 6 n 42 2456', 13294 'STATE 2 s 100 273', 13295 'STATE 6 r 2458 2457', 13296 'STATE 5 t 2460 2459', 13297 'STATE 5 h 100 2461', 13298 'STATE 3 t 230 2462', 13299 'STATE 4 c 100 562', 13300 'STATE 6 r 562 2463', 13301 'STATE 4 p 100 2464', 13302 'STATE 5 r 2466 2465', 13303 'STATE 4 s 100 2467', 13304 'STATE 5 h 100 2468', 13305 'STATE 4 t 100 2469', 13306 'STATE 6 n 68 2470', 13307 'STATE 4 g 100 2471', 13308 'STATE 3 t 42 100', 13309 'STATE 3 g 100 756', 13310 'STATE 6 a 100 2472', 13311 'STATE 5 c 1980 100', 13312 'STATE 6 o 2473 100', 13313 'STATE 6 v 230 2474', 13314 'STATE 4 p 68 2475', 13315 'STATE 3 b 68 2476', 13316 'STATE 3 h 2477 100', 13317 'STATE 4 n 2478 1425', 13318 'STATE 6 g 100 2479', 13319 'STATE 6 g 68 2480', 13320 'STATE 2 # 68 2481', 13321 'STATE 4 n 100 256', 13322 'STATE 3 f 42 2482', 13323 'STATE 4 m 100 68', 13324 'STATE 6 o 42 28', 13325 'STATE 6 y 2484 2483', 13326 'STATE 3 r 42 68', 13327 'STATE 2 s 68 2485', 13328 'STATE 6 n 2487 2486', 13329 'STATE 4 t 42 68', 13330 'STATE 4 v 42 2488', 13331 'STATE 1 c 42 2489', 13332 'STATE 3 m 82 2490', 13333 'STATE 2 i 562 2491', 13334 'STATE 3 i 100 2492', 13335 'STATE 2 e 68 2493', 13336 'STATE 1 r 29 2494', 13337 'STATE 1 l 28 2495', 13338 'STATE 1 a 29 2496', 13339 'STATE 1 o 28 2497', 13340 'STATE 3 g 28 29', 13341 'STATE 2 r 230 29', 13342 'STATE 5 b 230 29', 13343 'STATE 5 h 2499 2498', 13344 'STATE 3 p 42 2500', 13345 'STATE 5 s 100 2501', 13346 'STATE 4 s 2503 2502', 13347 'STATE 3 h 100 2504', 13348 'STATE 3 l 42 68', 13349 'STATE 4 k 562 2505', 13350 'STATE 1 e 100 2506', 13351 'STATE 6 i 100 2507', 13352 'STATE 5 n 1207 2508', 13353 'STATE 6 e 2509 100', 13354 'STATE 5 n 100 29', 13355 'STATE 3 s 29 2510', 13356 'STATE 4 z 230 2511', 13357 'STATE 5 k 2513 2512', 13358 'STATE 5 v 100 2514', 13359 'STATE 6 e 68 2515', 13360 'STATE 4 d 68 100', 13361 'STATE 6 u 68 2516', 13362 'STATE 4 d 100 2517', 13363 'STATE 4 h 2519 2518', 13364 'STATE 4 t 100 2520', 13365 'STATE 2 o 68 2521', 13366 'STATE 2 f 230 100', 13367 'STATE 5 b 42 2069', 13368 'STATE 2 b 100 2522', 13369 'STATE 2 s 100 2523', 13370 'STATE 2 g 42 29', 13371 'STATE 6 s 29 2524', 13372 'STATE 5 z 2526 2525', 13373 'STATE 5 t 100 2527', 13374 'STATE 5 h 100 2528', 13375 'STATE 4 s 100 2529', 13376 'STATE 4 b 68 2530', 13377 'STATE 3 h 100 2213', 13378 'STATE 6 u 2532 2531', 13379 'STATE 3 f 100 2533', 13380 'STATE 4 b 100 2534', 13381 'STATE 4 g 42 2535', 13382 'STATE 4 t 100 2536', 13383 'STATE 5 t 2538 2537', 13384 'STATE 5 n 100 2539', 13385 'STATE 4 b 1416 2540', 13386 'STATE 5 z 230 100', 13387 'STATE 3 b 100 2541', 13388 'STATE 5 h 100 562', 13389 'STATE 4 g 230 2542', 13390 'STATE 3 j 68 2543', 13391 'STATE 4 v 2545 2544', 13392 'STATE 6 o 100 2315', 13393 'STATE 2 a 68 2546', 13394 'STATE 4 p 100 2547', 13395 'STATE 6 l 68 2548', 13396 'STATE 6 r 100 68', 13397 'STATE 4 v 100 2549', 13398 'STATE 4 n 68 2550', 13399 'STATE 3 l 68 42', 13400 'STATE 3 h 42 2551', 13401 'STATE 4 b 42 2552', 13402 'STATE 3 g 42 2553', 13403 'STATE 4 s 42 2554', 13404 'STATE 2 l 68 2555', 13405 'STATE 5 p 82 63', 13406 'STATE 3 u 562 2556', 13407 'STATE 4 c 562 100', 13408 'STATE 3 k 68 2557', 13409 'STATE 1 b 230 2558', 13410 'STATE 1 u 29 2559', 13411 'STATE 2 a 29 2560', 13412 'STATE 3 u 29 2561', 13413 'STATE 6 e 2563 2562', 13414 'STATE 3 t 100 2564', 13415 'STATE 6 e 2566 2565', 13416 'STATE 6 s 100 2567', 13417 'STATE 5 p 2569 2568', 13418 'STATE 5 s 2570 100', 13419 'STATE 4 s 100 29', 13420 'STATE 4 d 29 2571', 13421 'STATE 2 t 100 2572', 13422 'STATE 3 c 29 2573', 13423 'STATE 3 s 29 2574', 13424 'STATE 2 p 100 29', 13425 'STATE 1 d 100 2575', 13426 'STATE 5 j 68 2576', 13427 'STATE 6 i 100 2577', 13428 'STATE 6 n 562 100', 13429 'STATE 4 f 68 2578', 13430 'STATE 6 a 68 100', 13431 'STATE 6 i 2579 100', 13432 'STATE 6 n 230 2580', 13433 'STATE 2 i 2582 2581', 13434 'STATE 5 l 29 100', 13435 'STATE 5 p 1625 2583', 13436 'STATE 5 g 2585 2584', 13437 'STATE 2 s 1674 2586', 13438 'STATE 4 p 100 2587', 13439 'STATE 4 v 68 100', 13440 'STATE 5 h 2588 100', 13441 'STATE 4 c 68 100', 13442 'STATE 5 b 100 2589', 13443 'STATE 5 s 2591 2590', 13444 'STATE 4 t 2592 100', 13445 'STATE 4 s 100 2593', 13446 'STATE 6 o 2073 100', 13447 'STATE 5 s 230 100', 13448 'STATE 4 c 100 2594', 13449 'STATE 3 h 100 2595', 13450 'STATE 3 l 230 100', 13451 'STATE 4 p 562 100', 13452 'STATE 5 s 100 2596', 13453 'STATE 4 s 230 100', 13454 'STATE 4 g 100 230', 13455 'STATE 3 r 230 2597', 13456 'STATE 6 u 100 2598', 13457 'STATE 4 f 29 2599', 13458 'STATE 3 r 29 2600', 13459 'STATE 4 b 230 2601', 13460 'STATE 3 n 100 230', 13461 'STATE 2 i 68 29', 13462 'STATE 4 c 1416 2602', 13463 'STATE 6 p 100 2603', 13464 'STATE 4 m 42 2604', 13465 'STATE 6 n 2605 68', 13466 'STATE 1 a 68 42', 13467 'STATE 6 c 100 2606', 13468 'STATE 4 d 42 2607', 13469 'STATE 6 n 100 1353', 13470 'STATE 2 r 68 2608', 13471 'STATE 3 h 100 2609', 13472 'STATE 2 h 68 2610', 13473 'STATE 2 n 230 2611', 13474 'STATE 1 k 28 2612', 13475 'STATE 1 d 29 230', 13476 'STATE 3 t 28 2613', 13477 'STATE 6 o 2615 2614', 13478 'STATE 4 g 2617 2616', 13479 'STATE 3 f 29 2618', 13480 'STATE 6 i 2620 2619', 13481 'STATE 2 i 68 2621', 13482 'STATE 5 h 68 2622', 13483 'STATE 4 p 100 2623', 13484 'STATE 3 k 2624 100', 13485 'STATE 2 g 100 2625', 13486 'STATE 5 u 68 2626', 13487 'STATE 3 r 68 2627', 13488 'STATE 6 o 2317 68', 13489 'STATE 1 u 68 2628', 13490 'STATE 1 m 100 2629', 13491 'STATE 4 t 100 2630', 13492 'STATE 6 o 68 2631', 13493 'STATE 5 n 100 2632', 13494 'STATE 5 p 100 68', 13495 'STATE 6 r 100 2216', 13496 'STATE 6 i 2634 2633', 13497 'STATE 5 c 100 2635', 13498 'STATE 2 s 100 2636', 13499 'STATE 5 u 1891 100', 13500 'STATE 4 g 100 2637', 13501 'STATE 2 c 42 100', 13502 'STATE 3 h 100 68', 13503 'STATE 4 c 2638 100', 13504 'STATE 4 t 100 2639', 13505 'STATE 5 l 100 2640', 13506 'STATE 4 s 100 562', 13507 'STATE 3 b 230 100', 13508 'STATE 3 k 29 2641', 13509 'STATE 4 m 100 2642', 13510 'STATE 5 z 230 2643', 13511 'STATE 5 r 230 100', 13512 'STATE 3 l 230 2644', 13513 'STATE 6 i 1996 100', 13514 'STATE 3 l 100 2645', 13515 'STATE 4 g 100 2646', 13516 'STATE 3 t 100 230', 13517 'STATE 3 p 68 2647', 13518 'STATE 3 v 100 2648', 13519 'STATE 4 p 230 42', 13520 'STATE 4 t 100 2649', 13521 'STATE 3 p 2651 2650', 13522 'STATE 3 p 100 1825', 13523 'STATE 1 e 42 2652', 13524 'STATE 2 t 100 2653', 13525 'STATE 1 e 68 2654', 13526 'STATE 5 s 29 2655', 13527 'STATE 3 t 28 2656', 13528 'STATE 1 a 28 2657', 13529 'STATE 6 h 100 2658', 13530 'STATE 5 n 230 2659', 13531 'STATE 3 m 68 2660', 13532 'STATE 1 r 100 42', 13533 'STATE 4 t 2662 2661', 13534 'STATE 3 l 29 2663', 13535 'STATE 3 i 68 100', 13536 'STATE 3 s 68 42', 13537 'STATE 3 s 68 100', 13538 'STATE 3 v 562 2664', 13539 'STATE 2 n 562 100', 13540 'STATE 1 a 68 100', 13541 'STATE 5 h 68 2665', 13542 'STATE 1 o 100 2666', 13543 'STATE 6 e 2668 2667', 13544 'STATE 6 r 2670 2669', 13545 'STATE 5 f 2672 2671', 13546 'STATE 6 u 68 100', 13547 'STATE 4 d 2673 100', 13548 'STATE 6 o 2675 2674', 13549 'STATE 3 r 2676 100', 13550 'STATE 3 n 1423 2677', 13551 'STATE 5 t 2678 100', 13552 'STATE 3 r 42 100', 13553 'STATE 3 b 29 2679', 13554 'STATE 4 f 100 2680', 13555 'STATE 3 c 2073 2681', 13556 'STATE 5 b 2683 2682', 13557 'STATE 6 i 100 2684', 13558 'STATE 5 l 100 2685', 13559 'STATE 4 c 100 2686', 13560 'STATE 6 m 68 2687', 13561 'STATE 6 y 2689 2688', 13562 'STATE 4 t 100 2690', 13563 'STATE 6 b 100 230', 13564 'STATE 2 t 68 2691', 13565 'STATE 3 n 2693 2692', 13566 'STATE 6 r 68 2694', 13567 'STATE 2 n 68 42', 13568 'STATE 1 d 68 2695', 13569 'STATE 1 m 100 2696', 13570 'STATE 6 o 29 2697', 13571 'STATE 1 o 29 2698', 13572 'STATE 1 i 28 2699', 13573 'STATE 5 k 2701 2700', 13574 'STATE 5 z 29 2702', 13575 'STATE 3 s 68 2703', 13576 'STATE 2 h 100 2704', 13577 'STATE 2 m 68 2705', 13578 'STATE 3 r 28 68', 13579 'STATE 2 t 100 2706', 13580 'STATE 6 # 68 2707', 13581 'STATE 6 # 100 68', 13582 'STATE 5 t 2709 2708', 13583 'STATE 5 t 29 100', 13584 'STATE 3 h 100 2710', 13585 'STATE 3 x 100 29', 13586 'STATE 5 s 2712 2711', 13587 'STATE 6 o 68 2713', 13588 'STATE 5 d 68 100', 13589 'STATE 6 a 2715 2714', 13590 'STATE 3 l 2717 2716', 13591 'STATE 4 n 2719 2718', 13592 'STATE 4 n 29 230', 13593 'STATE 4 n 100 562', 13594 'STATE 6 t 29 100', 13595 'STATE 4 m 100 2299', 13596 'STATE 3 z 230 2720', 13597 'STATE 3 c 100 2721', 13598 'STATE 3 r 68 100', 13599 'STATE 3 m 100 2722', 13600 'STATE 4 m 100 2723', 13601 'STATE 6 l 230 2724', 13602 'STATE 6 u 68 2725', 13603 'STATE 3 t 100 2726', 13604 'STATE 3 m 29 100', 13605 'STATE 3 c 230 2727', 13606 'STATE 3 v 68 2728', 13607 'STATE 4 t 42 2729', 13608 'STATE 6 r 42 68', 13609 'STATE 4 l 42 230', 13610 'STATE 3 v 68 2730', 13611 'STATE 3 c 68 2731', 13612 'STATE 3 c 29 2732', 13613 'STATE 1 a 29 2733', 13614 'STATE 3 r 29 2734', 13615 'STATE 3 l 100 2735', 13616 'STATE 6 s 100 2736', 13617 'STATE 4 s 29 1860', 13618 'STATE 3 n 562 2737', 13619 'STATE 6 i 2739 2738', 13620 'STATE 3 n 68 2740', 13621 'STATE 5 h 2742 2741', 13622 'STATE 6 o 68 1722', 13623 'STATE 5 z 29 2743', 13624 'STATE 1 n 68 2744', 13625 'STATE 6 i 100 2745', 13626 'STATE 6 u 562 2746', 13627 'STATE 4 b 2747 100', 13628 'STATE 6 i 68 2748', 13629 'STATE 3 v 68 2749', 13630 'STATE 5 c 2194 2750', 13631 'STATE 5 k 100 2751', 13632 'STATE 5 b 562 100', 13633 'STATE 2 g 100 2752', 13634 'STATE 5 c 562 100', 13635 'STATE 3 v 100 2753', 13636 'STATE 3 t 2754 100', 13637 'STATE 6 o 68 29', 13638 'STATE 5 m 100 2755', 13639 'STATE 4 t 100 2756', 13640 'STATE 4 s 100 2757', 13641 'STATE 6 h 29 2758', 13642 'STATE 4 k 68 2759', 13643 'STATE 4 l 68 2760', 13644 'STATE 4 s 42 2761', 13645 'STATE 2 r 2763 2762', 13646 'STATE 3 s 68 2764', 13647 'STATE 2 e 230 29', 13648 'STATE 3 i 28 2765', 13649 'STATE 2 t 28 2766', 13650 'STATE 4 c 29 2767', 13651 'STATE 2 e 100 2768', 13652 'STATE 2 o 2216 2769', 13653 'STATE 4 c 2771 2770', 13654 'STATE 3 h 29 68', 13655 'STATE 2 o 100 2772', 13656 'STATE 2 l 2774 2773', 13657 'STATE 4 t 1287 68', 13658 'STATE 5 j 29 2295', 13659 'STATE 1 o 230 2775', 13660 'STATE 1 s 100 2776', 13661 'STATE 5 d 2778 2777', 13662 'STATE 6 t 68 1204', 13663 'STATE 6 l 68 100', 13664 'STATE 5 u 2779 100', 13665 'STATE 4 g 100 2780', 13666 'STATE 5 n 230 2781', 13667 'STATE 5 h 42 100', 13668 'STATE 5 c 2782 100', 13669 'STATE 5 p 100 562', 13670 'STATE 3 z 230 2783', 13671 'STATE 4 m 100 2784', 13672 'STATE 6 w 68 2785', 13673 'STATE 4 v 29 2786', 13674 'STATE 2 # 2788 2787', 13675 'STATE 4 c 42 2789', 13676 'STATE 4 v 42 2790', 13677 'STATE 2 u 562 2791', 13678 'STATE 1 e 100 1425', 13679 'STATE 3 t 68 2792', 13680 'STATE 1 m 28 2793', 13681 'STATE 2 i 28 2794', 13682 'STATE 1 i 100 2795', 13683 'STATE 2 u 29 2796', 13684 'STATE 3 h 2798 2797', 13685 'STATE 6 e 100 68', 13686 'STATE 2 e 29 2799', 13687 'STATE 2 e 100 68', 13688 'STATE 5 k 2801 2800', 13689 'STATE 4 m 68 2802', 13690 'STATE 2 r 100 2803', 13691 'STATE 6 o 100 2804', 13692 'STATE 6 a 2806 2805', 13693 'STATE 4 b 100 2807', 13694 'STATE 2 s 2601 100', 13695 'STATE 4 m 100 2808', 13696 'STATE 2 f 100 2809', 13697 'STATE 3 f 100 230', 13698 'STATE 3 p 2811 2810', 13699 'STATE 3 c 100 2812', 13700 'STATE 4 d 100 2813', 13701 'STATE 6 k 29 2814', 13702 'STATE 4 v 230 2815', 13703 'STATE 6 r 68 2816', 13704 'STATE 4 v 68 230', 13705 'STATE 3 d 42 2817', 13706 'STATE 2 c 100 2818', 13707 'STATE 2 a 68 2819', 13708 'STATE 2 o 29 2820', 13709 'STATE 3 b 28 2821', 13710 'STATE 5 p 100 2822', 13711 'STATE 4 s 29 2823', 13712 'STATE 4 s 2824 100', 13713 'STATE 5 m 100 68', 13714 'STATE 1 t 29 68', 13715 'STATE 1 o 100 2825', 13716 'STATE 1 o 68 2826', 13717 'STATE 5 s 562 68', 13718 'STATE 2 n 100 2827', 13719 'STATE 1 l 100 2828', 13720 'STATE 5 k 562 2829', 13721 'STATE 5 v 68 100', 13722 'STATE 6 i 68 100', 13723 'STATE 4 n 100 2830', 13724 'STATE 5 h 29 100', 13725 'STATE 5 t 2832 2831', 13726 'STATE 5 s 230 2538', 13727 'STATE 3 p 100 230', 13728 'STATE 3 s 100 2748', 13729 'STATE 4 z 68 2833', 13730 'STATE 4 b 68 2834', 13731 'STATE 4 n 68 1799', 13732 'STATE 6 a 42 2835', 13733 'STATE 3 b 100 2836', 13734 'STATE 1 a 68 2837', 13735 'STATE 2 a 29 2838', 13736 'STATE 3 n 28 2839', 13737 'STATE 2 s 100 2840', 13738 'STATE 1 a 100 2841', 13739 'STATE 3 p 100 2625', 13740 'STATE 2 s 100 2842', 13741 'STATE 3 s 68 2843', 13742 'STATE 6 a 100 2844', 13743 'STATE 3 m 2770 100', 13744 'STATE 6 i 562 2845', 13745 'STATE 2 f 100 2846', 13746 'STATE 3 k 100 2847', 13747 'STATE 4 t 230 100', 13748 'STATE 3 l 68 2848', 13749 'STATE 4 g 68 100', 13750 'STATE 6 r 2850 2849', 13751 'STATE 3 p 100 2851', 13752 'STATE 2 o 2852 68', 13753 'STATE 2 i 29 28', 13754 'STATE 2 s 28 2853', 13755 'STATE 1 m 100 2854', 13756 'STATE 2 c 100 29', 13757 'STATE 3 c 100 2855', 13758 'STATE 1 a 68 1853', 13759 'STATE 2 s 100 2856', 13760 'STATE 5 v 100 2857', 13761 'STATE 5 u 100 2858', 13762 'STATE 5 g 100 2859', 13763 'STATE 4 h 68 2860', 13764 'STATE 4 n 100 1552', 13765 'STATE 4 m 42 2861', 13766 'STATE 2 g 100 2862', 13767 'STATE 1 d 29 68', 13768 'STATE 3 g 28 2863', 13769 'STATE 5 m 2865 2864', 13770 'STATE 2 g 68 2866', 13771 'STATE 3 r 100 2867', 13772 'STATE 5 n 100 2868', 13773 'STATE 3 l 100 1227', 13774 'STATE 3 r 100 2869', 13775 'STATE 6 m 230 100', 13776 'STATE 4 d 100 2870', 13777 'STATE 2 e 2183 2871', 13778 'STATE 2 c 28 240', 13779 'STATE 5 b 100 2872', 13780 'STATE 6 a 100 562', 13781 'STATE 4 m 68 2873', 13782 'STATE 2 a 100 2874', 13783 'STATE 4 b 100 2875', 13784 'STATE 5 c 2876 100', 13785 'STATE 3 g 100 42', 13786 'STATE 4 p 100 2877', 13787 'STATE 2 l 2879 2878', 13788 'STATE 3 r 100 2880', 13789 'STATE 6 i 100 29', 13790 'STATE 5 m 562 68', 13791 'STATE 4 c 100 230', 13792 'STATE 3 i 100 2881', 13793 'STATE 5 s 2883 2882', 13794 'STATE 1 a 230 68', 13795 'STATE 5 s 100 68', 13796 'STATE 1 c 68 2884', 13797 'STATE 3 p 230 2885', 13798 'STATE 1 a 68 2886', 13799 'STATE 3 r 2183 2887', 13800 'STATE 4 g 100 2888', 13801 'STATE 4 s 2889 29', 13802 'STATE 4 d 562 2890', 13803 'STATE 4 d 100 2891', 13804 'STATE 2 o 29 100', 13805 'STATE 4 t 100 2892', 13806 'STATE 5 c 100 68', 13807 'STATE 3 m 562 2893', 13808 'STATE 2 s 562 100', 13809 'INDEX 2894 b', 13810 'STATE 4 b 2896 2895', 13811 'STATE 3 m 2898 2897', 13812 'STATE 1 c 2900 2899', 13813 'STATE 4 t 2902 2901', 13814 'STATE 4 # 2899 2903', 13815 'PHONE epsilon', 13816 'STATE 2 r 2904 2899', 13817 'PHONE b', 13818 'STATE 1 d 2899 2905', 13819 'STATE 4 s 2899 2906', 13820 'STATE 3 a 2899 2901', 13821 'STATE 2 d 2899 2901', 13822 'STATE 2 o 2908 2907', 13823 'STATE 1 l 2910 2909', 13824 'STATE 4 a 2901 2911', 13825 'STATE 2 u 2912 2901', 13826 'STATE 2 i 2913 2901', 13827 'STATE 1 b 2899 2914', 13828 'STATE 1 d 2899 2901', 13829 'STATE 4 e 2899 2901', 13830 'STATE 1 c 2913 2901', 13831 'INDEX 2915 c', 13832 'STATE 4 k 2917 2916', 13833 'STATE 4 h 2919 2918', 13834 'STATE 5 i 2921 2920', 13835 'STATE 4 e 2923 2922', 13836 'STATE 3 s 2925 2924', 13837 'PHONE epsilon', 13838 'STATE 6 # 2926 2920', 13839 'STATE 4 i 2928 2927', 13840 'STATE 3 s 2920 2929', 13841 'STATE 3 t 2931 2930', 13842 'STATE 2 t 2931 2932', 13843 'STATE 1 # 2920 2933', 13844 'STATE 4 c 2935 2934', 13845 'STATE 3 s 2937 2936', 13846 'STATE 3 m 2939 2938', 13847 'STATE 2 0 2941 2940', 13848 'PHONE ch', 13849 'STATE 5 o 2943 2942', 13850 'STATE 1 o 2945 2944', 13851 'STATE 4 y 2947 2946', 13852 'STATE 5 e 2949 2948', 13853 'STATE 5 a 2951 2950', 13854 'STATE 5 a 2953 2952', 13855 'STATE 3 x 2920 2954', 13856 'PHONE k', 13857 'STATE 3 n 2956 2955', 13858 'STATE 5 r 2939 2957', 13859 'STATE 5 i 2959 2958', 13860 'STATE 6 o 2939 2920', 13861 'STATE 1 a 2961 2960', 13862 'PHONE t-s', 13863 'STATE 4 z 2963 2962', 13864 'STATE 5 r 2939 2964', 13865 'STATE 5 i 2965 2920', 13866 'STATE 3 a 2939 2966', 13867 'STATE 3 c 2968 2967', 13868 'STATE 6 l 2970 2969', 13869 'STATE 1 p 2931 2920', 13870 'STATE 1 0 2920 2931', 13871 'STATE 5 k 2972 2971', 13872 'STATE 2 v 2931 2973', 13873 'STATE 5 o 2975 2974', 13874 'STATE 5 l 2939 2976', 13875 'STATE 6 d 2978 2977', 13876 'STATE 1 0 2920 2939', 13877 'STATE 3 i 2945 2979', 13878 'STATE 2 l 2920 2945', 13879 'STATE 4 g 2920 2980', 13880 'STATE 2 s 2920 2931', 13881 'PHONE s', 13882 'STATE 6 # 2920 2981', 13883 'STATE 2 s 2939 2920', 13884 'STATE 6 u 2983 2982', 13885 'STATE 5 # 2931 2984', 13886 'STATE 3 i 2970 2985', 13887 'PHONE sh', 13888 'STATE 6 n 2987 2986', 13889 'STATE 3 i 2931 2988', 13890 'STATE 2 e 2990 2989', 13891 'STATE 6 l 2992 2991', 13892 'STATE 6 r 2939 2993', 13893 'STATE 5 a 2995 2994', 13894 'STATE 1 0 2997 2996', 13895 'STATE 5 a 2920 2939', 13896 'STATE 1 r 2945 2998', 13897 'STATE 4 q 2920 2999', 13898 'STATE 6 d 2939 3000', 13899 'STATE 3 x 2920 3001', 13900 'STATE 5 o 2970 2964', 13901 'STATE 5 o 2931 3002', 13902 'STATE 6 t 3004 3003', 13903 'STATE 2 0 3006 3005', 13904 'STATE 5 a 2970 2964', 13905 'STATE 1 # 2931 3007', 13906 'STATE 5 e 3009 3008', 13907 'STATE 3 i 2939 3010', 13908 'STATE 5 e 2931 3011', 13909 'STATE 2 i 2931 2970', 13910 'STATE 6 # 2931 2939', 13911 'STATE 6 v 2931 3012', 13912 'STATE 6 r 2931 3013', 13913 'STATE 5 a 3014 2920', 13914 'STATE 6 m 3015 2920', 13915 'STATE 2 r 2945 3016', 13916 'STATE 3 k 2920 3017', 13917 'STATE 6 a 2920 3018', 13918 'STATE 6 n 3020 3019', 13919 'STATE 1 # 2964 3021', 13920 'STATE 3 c 2931 3022', 13921 'STATE 1 p 2970 2964', 13922 'STATE 5 o 2970 3023', 13923 'STATE 5 n 2964 3024', 13924 'STATE 1 o 2931 3025', 13925 'STATE 3 e 3027 3026', 13926 'STATE 6 r 3029 3028', 13927 'STATE 3 c 2939 3030', 13928 'STATE 1 s 2939 3031', 13929 'STATE 6 r 3033 3032', 13930 'STATE 6 u 2970 2931', 13931 'STATE 6 r 3034 2920', 13932 'STATE 5 e 2939 2920', 13933 'STATE 3 a 2945 3035', 13934 'STATE 3 n 3037 3036', 13935 'STATE 3 a 3038 2920', 13936 'STATE 3 m 2939 3039', 13937 'STATE 2 f 2970 3040', 13938 'STATE 1 v 2964 2931', 13939 'STATE 1 0 2931 3041', 13940 'STATE 6 c 3043 3042', 13941 'STATE 6 s 2964 3044', 13942 'STATE 1 a 2931 3045', 13943 'STATE 2 b 3047 3046', 13944 'STATE 2 i 3049 3048', 13945 'STATE 6 n 3051 3050', 13946 'STATE 3 a 2939 3052', 13947 'STATE 3 u 2939 3053', 13948 'STATE 5 # 2931 3054', 13949 'STATE 6 a 3056 3055', 13950 'STATE 5 o 2939 2931', 13951 'STATE 1 d 2931 2939', 13952 'STATE 3 o 2945 2920', 13953 'STATE 2 u 3058 3057', 13954 'STATE 1 r 3059 2939', 13955 'STATE 1 # 2939 2920', 13956 'STATE 5 e 3061 3060', 13957 'STATE 5 n 2964 3062', 13958 'STATE 3 n 2931 3063', 13959 'STATE 3 n 3065 3064', 13960 'STATE 2 a 2931 2964', 13961 'STATE 5 m 2964 3066', 13962 'STATE 3 a 2964 2931', 13963 'STATE 3 c 2939 3067', 13964 'STATE 5 # 2939 3068', 13965 'STATE 5 a 3070 3069', 13966 'STATE 5 # 2931 2939', 13967 'STATE 6 l 3072 3071', 13968 'STATE 3 r 2931 2939', 13969 'STATE 1 r 2931 3073', 13970 'STATE 3 r 3074 2931', 13971 'STATE 6 s 2931 3075', 13972 'STATE 6 m 3076 2931', 13973 'STATE 5 i 2939 2931', 13974 'STATE 4 # 2939 3077', 13975 'STATE 4 l 2920 2939', 13976 'STATE 5 i 2964 2939', 13977 'STATE 5 # 3079 3078', 13978 'STATE 6 # 2939 3080', 13979 'STATE 3 n 2931 2964', 13980 'STATE 6 n 2970 3081', 13981 'STATE 5 l 3083 3082', 13982 'STATE 5 n 3084 2964', 13983 'STATE 6 u 2931 3085', 13984 'STATE 2 o 3087 3086', 13985 'STATE 1 # 3088 2931', 13986 'STATE 5 i 3090 3089', 13987 'STATE 2 m 2939 2931', 13988 'STATE 6 t 3092 3091', 13989 'STATE 2 r 2970 3093', 13990 'STATE 3 e 2939 3094', 13991 'STATE 5 a 2931 3095', 13992 'STATE 1 r 2931 3096', 13993 'STATE 5 e 2939 2931', 13994 'STATE 1 n 3097 2939', 13995 'STATE 6 g 2964 3098', 13996 'STATE 3 i 2931 3099', 13997 'STATE 3 n 2964 3100', 13998 'STATE 3 r 2964 3101', 13999 'STATE 1 a 3103 3102', 14000 'STATE 6 e 2964 3104', 14001 'STATE 1 v 2931 2964', 14002 'STATE 5 p 2964 3105', 14003 'STATE 2 u 3107 3106', 14004 'STATE 3 r 3108 2931', 14005 'STATE 6 e 2939 3109', 14006 'STATE 1 c 3110 2939', 14007 'STATE 6 n 2931 2939', 14008 'STATE 6 m 3112 3111', 14009 'STATE 2 a 2939 3113', 14010 'STATE 3 a 2931 2939', 14011 'STATE 1 # 2931 3114', 14012 'STATE 1 k 2931 3115', 14013 'STATE 6 n 2931 3116', 14014 'STATE 4 t 3117 2939', 14015 'STATE 5 n 3119 3118', 14016 'STATE 3 a 2931 2964', 14017 'STATE 3 r 2939 3120', 14018 'STATE 3 a 2931 2970', 14019 'STATE 5 s 3122 3121', 14020 'STATE 3 i 2964 3099', 14021 'STATE 3 a 2964 3123', 14022 'STATE 6 t 2964 3124', 14023 'STATE 5 i 3126 3125', 14024 'STATE 5 a 3127 2931', 14025 'STATE 5 a 2931 3056', 14026 'STATE 6 n 2939 3128', 14027 'STATE 2 h 2931 2939', 14028 'STATE 2 s 2939 3129', 14029 'STATE 3 o 2939 3130', 14030 'STATE 1 # 2970 3131', 14031 'STATE 3 r 3133 3132', 14032 'STATE 5 e 2931 2939', 14033 'STATE 2 i 2931 3134', 14034 'STATE 3 i 3135 2939', 14035 'STATE 3 i 2964 3136', 14036 'STATE 2 m 2939 3137', 14037 'STATE 2 0 2931 3138', 14038 'STATE 6 # 2964 3139', 14039 'STATE 6 t 2920 2964', 14040 'STATE 6 y 2964 3140', 14041 'STATE 5 r 3141 2964', 14042 'STATE 5 a 3143 3142', 14043 'STATE 3 a 3145 3144', 14044 'STATE 1 p 2931 2970', 14045 'STATE 6 a 2939 3146', 14046 'STATE 6 d 2931 3147', 14047 'STATE 1 # 2931 2939', 14048 'STATE 3 o 2970 2931', 14049 'STATE 2 o 2931 2939', 14050 'STATE 2 a 2931 2939', 14051 'STATE 5 a 3148 2931', 14052 'STATE 2 d 2920 2939', 14053 'STATE 5 c 3150 3149', 14054 'STATE 6 s 2931 3151', 14055 'STATE 6 s 2964 3152', 14056 'STATE 6 o 2964 3153', 14057 'STATE 1 m 3155 3154', 14058 'STATE 6 e 2964 3156', 14059 'STATE 6 w 3158 3157', 14060 'STATE 6 e 2939 3159', 14061 'STATE 3 r 2939 3160', 14062 'STATE 6 e 2931 3161', 14063 'STATE 3 u 2939 2931', 14064 'STATE 6 v 2931 3162', 14065 'STATE 6 r 2931 2939', 14066 'STATE 5 o 3164 3163', 14067 'STATE 1 0 2964 2931', 14068 'STATE 1 m 2931 3165', 14069 'STATE 3 a 2970 2964', 14070 'STATE 3 i 2964 3166', 14071 'STATE 2 a 2964 3167', 14072 'STATE 6 l 2964 2931', 14073 'STATE 6 a 2964 3168', 14074 'STATE 3 o 3170 3169', 14075 'STATE 3 a 2920 2931', 14076 'STATE 1 0 2939 3171', 14077 'STATE 2 s 2939 3172', 14078 'STATE 2 m 2970 3173', 14079 'STATE 1 l 2931 3174', 14080 'STATE 5 u 2964 3175', 14081 'STATE 3 o 2964 3176', 14082 'STATE 6 o 2931 3177', 14083 'STATE 2 e 2964 3178', 14084 'STATE 6 l 3179 2964', 14085 'STATE 6 v 2964 2931', 14086 'STATE 2 r 3181 3180', 14087 'STATE 5 u 2931 2939', 14088 'STATE 3 r 3183 3182', 14089 'STATE 2 a 2931 3184', 14090 'STATE 1 s 2970 2993', 14091 'STATE 6 c 2931 3185', 14092 'STATE 5 k 2931 3186', 14093 'STATE 6 # 3187 2931', 14094 'STATE 3 l 2931 3188', 14095 'STATE 2 d 2964 3189', 14096 'STATE 3 i 2964 3190', 14097 'STATE 2 l 3192 3191', 14098 'STATE 1 # 2931 3193', 14099 'STATE 6 u 2970 3194', 14100 'STATE 1 # 2970 2939', 14101 'STATE 2 m 2931 3195', 14102 'STATE 3 u 3197 3196', 14103 'STATE 5 m 3199 3198', 14104 'STATE 3 a 2964 3200', 14105 'STATE 6 a 3201 2964', 14106 'STATE 5 r 3203 3202', 14107 'STATE 1 p 2964 2931', 14108 'STATE 2 y 2920 3204', 14109 'STATE 5 # 2939 3205', 14110 'STATE 3 a 3049 2939', 14111 'STATE 3 u 3207 3206', 14112 'STATE 3 o 3208 2931', 14113 'STATE 2 o 3210 3209', 14114 'STATE 6 # 2970 2931', 14115 'STATE 3 e 2964 3211', 14116 'STATE 1 0 2931 2964', 14117 'STATE 1 c 2931 2964', 14118 'STATE 1 l 2964 2931', 14119 'STATE 3 e 2964 3212', 14120 'STATE 2 r 2964 3213', 14121 'STATE 5 # 3215 3214', 14122 'STATE 5 l 2939 3216', 14123 'STATE 3 a 3218 3217', 14124 'STATE 6 r 2939 2931', 14125 'STATE 2 r 2939 2931', 14126 'STATE 1 c 2939 3219', 14127 'STATE 1 # 2939 2931', 14128 'STATE 1 # 3220 2964', 14129 'STATE 2 l 2964 3221', 14130 'STATE 1 # 3045 2964', 14131 'STATE 3 y 2939 3222', 14132 'STATE 1 # 2931 3223', 14133 'STATE 6 e 2939 3224', 14134 'STATE 3 i 2931 3225', 14135 'STATE 1 # 3207 2931', 14136 'STATE 2 r 3227 3226', 14137 'STATE 6 a 2931 2964', 14138 'STATE 1 s 2964 3228', 14139 'STATE 6 l 2939 3229', 14140 'STATE 1 t 2931 3230', 14141 'STATE 5 t 2931 2939', 14142 'STATE 3 o 2939 2931', 14143 'STATE 1 a 2931 3231', 14144 'STATE 3 i 2931 3232', 14145 'STATE 1 f 2964 3233', 14146 'STATE 5 u 2931 3234', 14147 'STATE 1 a 2920 3235', 14148 'STATE 2 a 2931 3236', 14149 'STATE 3 o 2931 2939', 14150 'STATE 6 e 2964 3237', 14151 'STATE 5 o 3239 3238', 14152 'STATE 1 o 2939 3240', 14153 'STATE 1 # 2931 3197', 14154 'STATE 1 t 2964 3241', 14155 'STATE 6 i 3051 3242', 14156 'STATE 6 # 2931 3243', 14157 'STATE 1 u 2939 3244', 14158 'STATE 3 a 3245 2964', 14159 'STATE 2 n 2939 3246', 14160 'STATE 1 0 2939 2931', 14161 'STATE 3 a 2939 3247', 14162 'STATE 2 f 2964 3248', 14163 'STATE 1 # 3250 3249', 14164 'STATE 1 r 2939 3251', 14165 'STATE 5 t 2964 3252', 14166 'STATE 5 m 2931 2939', 14167 'STATE 5 y 2931 3253', 14168 'STATE 3 i 2931 3254', 14169 'STATE 1 # 2964 3255', 14170 'STATE 2 m 2931 3256', 14171 'STATE 2 a 2931 3257', 14172 'STATE 1 g 2964 3258', 14173 'STATE 6 a 2931 2939', 14174 'STATE 2 i 2931 2939', 14175 'STATE 1 r 2964 3259', 14176 'STATE 5 # 2964 2931', 14177 'INDEX 3260 d', 14178 'STATE 4 # 3262 3261', 14179 'STATE 4 d 3264 3263', 14180 'STATE 3 e 3266 3265', 14181 'STATE 4 g 3268 3267', 14182 'STATE 2 g 3270 3269', 14183 'PHONE d', 14184 'STATE 2 k 3272 3271', 14185 'STATE 4 t 3274 3273', 14186 'STATE 5 e 3276 3275', 14187 'STATE 3 o 3276 3277', 14188 'STATE 3 o 3265 3276', 14189 'STATE 2 h 3279 3278', 14190 'PHONE t', 14191 'STATE 4 j 3276 3280', 14192 'STATE 5 # 3282 3281', 14193 'STATE 5 r 3265 3283', 14194 'PHONE epsilon', 14195 'STATE 2 b 3276 3284', 14196 'STATE 2 p 3272 3285', 14197 'STATE 1 t 3265 3286', 14198 'STATE 3 d 3288 3287', 14199 'STATE 1 # 3265 3289', 14200 'STATE 3 u 3265 3270', 14201 'STATE 5 a 3265 3290', 14202 'STATE 3 e 3292 3291', 14203 'STATE 2 c 3272 3293', 14204 'STATE 1 g 3265 3272', 14205 'STATE 4 u 3295 3294', 14206 'STATE 2 e 3297 3296', 14207 'STATE 5 h 3265 3298', 14208 'STATE 5 o 3265 3276', 14209 'STATE 5 y 3276 3299', 14210 'STATE 5 y 3265 3300', 14211 'STATE 2 s 3302 3301', 14212 'STATE 4 z 3303 3265', 14213 'STATE 2 0 3265 3304', 14214 'STATE 4 e 3306 3305', 14215 'STATE 4 y 3276 3307', 14216 'STATE 1 o 3265 3308', 14217 'STATE 5 i 3276 3309', 14218 'STATE 6 r 3276 3310', 14219 'STATE 2 f 3272 3311', 14220 'STATE 1 s 3272 3312', 14221 'STATE 6 # 3265 3313', 14222 'STATE 5 a 3315 3314', 14223 'STATE 1 # 3265 3316', 14224 'STATE 1 b 3265 3317', 14225 'STATE 6 # 3265 3318', 14226 'STATE 5 k 3265 3276', 14227 'STATE 2 m 3276 3319', 14228 'STATE 2 p 3265 3276', 14229 'STATE 2 x 3272 3265', 14230 'STATE 1 r 3272 3320', 14231 'STATE 6 k 3265 3321', 14232 'STATE 5 l 3323 3322', 14233 'STATE 1 g 3321 3324', 14234 'STATE 1 w 3265 3325', 14235 'STATE 1 l 3265 3326', 14236 'STATE 1 p 3276 3327', 14237 'STATE 6 d 3276 3328', 14238 'STATE 1 a 3272 3329', 14239 'PHONE jh', 14240 'STATE 3 e 3330 3265', 14241 'STATE 3 o 3321 3331', 14242 'STATE 3 i 3321 3265', 14243 'STATE 6 d 3265 3332', 14244 'STATE 5 d 3265 3333', 14245 'STATE 5 r 3265 3334', 14246 'STATE 2 w 3265 3335', 14247 'STATE 1 n 3272 3336', 14248 'STATE 1 # 3265 3337', 14249 'STATE 2 h 3321 3338', 14250 'STATE 2 a 3340 3339', 14251 'STATE 1 m 3265 3341', 14252 'STATE 4 i 3265 3342', 14253 'STATE 1 s 3344 3343', 14254 'STATE 1 i 3265 3345', 14255 'STATE 1 0 3321 3346', 14256 'STATE 6 t 3265 3347', 14257 'STATE 1 r 3348 3265', 14258 'STATE 6 # 3265 3349', 14259 'STATE 1 s 3265 3350', 14260 'STATE 5 # 3276 3265', 14261 'STATE 2 p 3276 3351', 14262 'STATE 2 h 3265 3276', 14263 'STATE 1 o 3265 3352', 14264 'STATE 5 c 3265 3321', 14265 'STATE 2 i 3265 3353', 14266 'STATE 2 i 3276 3265', 14267 'STATE 1 h 3276 3265', 14268 'STATE 6 # 3265 3354', 14269 'STATE 1 c 3276 3355', 14270 'STATE 1 u 3265 3272', 14271 'STATE 3 n 3321 3265', 14272 'STATE 2 a 3276 3356', 14273 'STATE 2 l 3276 3357', 14274 'STATE 5 r 3276 3265', 14275 'STATE 2 f 3276 3358', 14276 'STATE 3 i 3360 3359', 14277 'STATE 2 r 3276 3361', 14278 'STATE 2 r 3265 3276', 14279 'STATE 5 e 3362 3276', 14280 'STATE 1 # 3276 3265', 14281 'INDEX 3363 e', 14282 'STATE 6 0 3365 3364', 14283 'STATE 4 r 3367 3366', 14284 'STATE 4 # 3369 3368', 14285 'STATE 4 a 3371 3370', 14286 'STATE 5 r 3373 3372', 14287 'STATE 4 r 3375 3374', 14288 'STATE 3 e 3377 3376', 14289 'STATE 3 e 3379 3378', 14290 'STATE 5 r 3381 3380', 14291 'STATE 5 i 3383 3382', 14292 'STATE 3 b 3385 3384', 14293 'STATE 4 n 3387 3386', 14294 'STATE 3 e 3389 3388', 14295 'STATE 3 n 3391 3390', 14296 'STATE 2 r 3393 3392', 14297 'STATE 4 e 3395 3394', 14298 'STATE 2 r 3397 3396', 14299 'STATE 5 u 3399 3398', 14300 'STATE 3 w 3385 3400', 14301 'STATE 3 e 3389 3401', 14302 'STATE 6 n 3403 3402', 14303 'STATE 1 0 3405 3404', 14304 'PHONE eh1', 14305 'STATE 3 e 3407 3406', 14306 'STATE 3 e 3393 3408', 14307 'STATE 2 e 3409 3399', 14308 'PHONE ih1', 14309 'STATE 3 r 3411 3410', 14310 'STATE 2 o 3413 3412', 14311 'STATE 2 p 3393 3414', 14312 'PHONE iy1', 14313 'STATE 4 i 3416 3415', 14314 'STATE 3 r 3417 3399', 14315 'STATE 2 f 3418 3393', 14316 'STATE 1 # 3420 3419', 14317 'STATE 5 d 3422 3421', 14318 'PHONE epsilon', 14319 'STATE 3 b 3424 3423', 14320 'STATE 5 o 3426 3425', 14321 'STATE 6 a 3428 3427', 14322 'STATE 3 e 3389 3399', 14323 'STATE 3 h 3385 3429', 14324 'STATE 3 p 3399 3430', 14325 'STATE 4 l 3432 3431', 14326 'STATE 1 # 3393 3433', 14327 'STATE 3 m 3435 3434', 14328 'STATE 3 w 3437 3436', 14329 'STATE 3 k 3439 3438', 14330 'STATE 2 d 3441 3440', 14331 'STATE 2 i 3399 3442', 14332 'STATE 1 i 3444 3443', 14333 'STATE 2 n 3393 3445', 14334 'STATE 1 0 3447 3446', 14335 'STATE 5 r 3449 3448', 14336 'STATE 1 0 3451 3450', 14337 'STATE 1 # 3393 3452', 14338 'STATE 1 p 3453 3393', 14339 'STATE 5 a 3455 3454', 14340 'STATE 6 h 3457 3456', 14341 'STATE 3 h 3385 3458', 14342 'STATE 1 u 3444 3459', 14343 'STATE 6 d 3399 3385', 14344 'STATE 5 e 3461 3460', 14345 'STATE 1 0 3463 3462', 14346 'STATE 6 o 3465 3464', 14347 'STATE 3 l 3399 3466', 14348 'STATE 2 o 3399 3467', 14349 'STATE 6 a 3468 3385', 14350 'STATE 4 k 3470 3469', 14351 'STATE 3 i 3472 3471', 14352 'STATE 2 r 3393 3473', 14353 'STATE 2 g 3475 3474', 14354 'STATE 1 a 3455 3476', 14355 'STATE 3 y 3477 3399', 14356 'PHONE y-uw1', 14357 'STATE 2 n 3479 3478', 14358 'STATE 2 t 3444 3480', 14359 'STATE 2 b 3399 3481', 14360 'STATE 1 n 3399 3455', 14361 'STATE 2 a 3399 3482', 14362 'STATE 1 t 3399 3483', 14363 'PHONE iy', 14364 'STATE 1 d 3393 3484', 14365 'STATE 3 i 3486 3485', 14366 'STATE 3 r 3488 3487', 14367 'STATE 5 g 3490 3489', 14368 'STATE 6 a 3385 3491', 14369 'STATE 2 p 3492 3399', 14370 'STATE 6 a 3444 3493', 14371 'STATE 4 d 3444 3393', 14372 'STATE 4 m 3385 3494', 14373 'STATE 4 n 3389 3495', 14374 'PHONE ax', 14375 'STATE 1 0 3497 3496', 14376 'STATE 5 t 3498 3393', 14377 'STATE 3 t 3500 3499', 14378 'STATE 6 r 3393 3399', 14379 'STATE 5 a 3502 3501', 14380 'STATE 6 d 3399 3503', 14381 'STATE 6 # 3505 3504', 14382 'STATE 3 a 3385 3506', 14383 'STATE 6 e 3508 3507', 14384 'STATE 3 t 3389 3509', 14385 'STATE 2 a 3389 3510', 14386 'STATE 6 y 3385 3511', 14387 'STATE 3 s 3385 3512', 14388 'STATE 3 t 3514 3513', 14389 'STATE 1 # 3385 3515', 14390 'STATE 3 t 3517 3516', 14391 'STATE 1 # 3399 3518', 14392 'STATE 4 d 3393 3519', 14393 'STATE 3 i 3521 3520', 14394 'STATE 3 r 3522 3455', 14395 'STATE 2 l 3522 3523', 14396 'STATE 1 m 3399 3524', 14397 'STATE 3 h 3399 3525', 14398 'STATE 3 t 3526 3399', 14399 'STATE 2 z 3444 3527', 14400 'STATE 1 i 3529 3528', 14401 'STATE 2 e 3399 3530', 14402 'STATE 1 h 3399 3531', 14403 'STATE 2 s 3533 3532', 14404 'STATE 5 t 3535 3534', 14405 'STATE 5 t 3537 3536', 14406 'STATE 4 w 3539 3538', 14407 'STATE 4 v 3541 3540', 14408 'STATE 3 r 3543 3542', 14409 'STATE 6 h 3545 3544', 14410 'STATE 6 o 3385 3546', 14411 'STATE 5 m 3444 3399', 14412 'STATE 6 t 3444 3399', 14413 'PHONE ih', 14414 'STATE 6 # 3393 3547', 14415 'STATE 5 s 3549 3548', 14416 'STATE 3 r 3551 3550', 14417 'STATE 2 # 3385 3552', 14418 'STATE 3 d 3385 3553', 14419 'STATE 1 # 3385 3554', 14420 'STATE 5 u 3556 3555', 14421 'STATE 6 # 3558 3557', 14422 'STATE 1 0 3560 3559', 14423 'STATE 1 # 3546 3399', 14424 'STATE 3 i 3399 3385', 14425 'STATE 6 u 3399 3561', 14426 'STATE 3 d 3563 3562', 14427 'STATE 1 0 3385 3564', 14428 'STATE 1 i 3385 3565', 14429 'STATE 2 i 3389 3566', 14430 'STATE 1 m 3385 3567', 14431 'STATE 3 t 3399 3568', 14432 'STATE 4 t 3570 3569', 14433 'STATE 4 d 3455 3571', 14434 'STATE 3 t 3573 3572', 14435 'STATE 3 a 3399 3574', 14436 'STATE 2 s 3455 3575', 14437 'STATE 1 a 3576 3399', 14438 'STATE 1 s 3393 3577', 14439 'STATE 1 # 3578 3455', 14440 'STATE 2 t 3399 3579', 14441 'PHONE eh', 14442 'STATE 1 o 3455 3580', 14443 'PHONE ey1', 14444 'STATE 2 e 3582 3581', 14445 'STATE 1 a 3444 3583', 14446 'STATE 2 d 3444 3584', 14447 'STATE 1 d 3399 3585', 14448 'STATE 2 o 3444 3399', 14449 'STATE 2 y 3399 3586', 14450 'STATE 1 b 3399 3587', 14451 'STATE 1 e 3444 3588', 14452 'STATE 1 s 3444 3393', 14453 'STATE 5 s 3590 3589', 14454 'STATE 6 # 3592 3591', 14455 'STATE 4 n 3594 3593', 14456 'STATE 4 s 3596 3595', 14457 'STATE 4 u 3598 3597', 14458 'STATE 3 n 3600 3599', 14459 'STATE 4 u 3602 3601', 14460 'STATE 5 i 3604 3603', 14461 'STATE 3 v 3606 3605', 14462 'STATE 5 n 3608 3607', 14463 'STATE 6 n 3609 3399', 14464 'STATE 3 l 3399 3610', 14465 'STATE 3 h 3385 3399', 14466 'STATE 5 e 3611 3393', 14467 'STATE 5 b 3613 3612', 14468 'STATE 6 u 3385 3614', 14469 'STATE 3 h 3616 3615', 14470 'STATE 5 g 3618 3617', 14471 'STATE 3 h 3393 3385', 14472 'STATE 3 r 3620 3619', 14473 'STATE 1 m 3385 3621', 14474 'STATE 2 e 3623 3622', 14475 'STATE 1 0 3624 3399', 14476 'STATE 1 0 3626 3625', 14477 'STATE 3 i 3399 3627', 14478 'STATE 6 # 3629 3628', 14479 'STATE 6 g 3631 3630', 14480 'STATE 3 p 3399 3632', 14481 'STATE 6 z 3399 3633', 14482 'STATE 1 0 3634 3399', 14483 'STATE 2 x 3389 3399', 14484 'STATE 3 p 3389 3385', 14485 'STATE 2 m 3389 3635', 14486 'STATE 6 o 3637 3636', 14487 'STATE 3 f 3399 3385', 14488 'STATE 4 w 3639 3638', 14489 'STATE 3 k 3455 3640', 14490 'STATE 4 s 3642 3641', 14491 'STATE 3 c 3644 3643', 14492 'STATE 2 a 3522 3645', 14493 'STATE 3 u 3647 3646', 14494 'STATE 2 t 3455 3648', 14495 'STATE 2 n 3455 3399', 14496 'STATE 2 s 3393 3649', 14497 'STATE 3 o 3399 3650', 14498 'STATE 2 r 3455 3399', 14499 'STATE 2 r 3522 3651', 14500 'STATE 3 b 3399 3652', 14501 'STATE 3 s 3399 3653', 14502 'STATE 1 o 3444 3654', 14503 'STATE 2 m 3444 3399', 14504 'STATE 2 u 3399 3655', 14505 'STATE 1 e 3399 3656', 14506 'STATE 1 d 3399 3657', 14507 'STATE 1 u 3444 3658', 14508 'STATE 4 n 3660 3659', 14509 'STATE 6 # 3662 3661', 14510 'STATE 4 n 3664 3663', 14511 'STATE 4 n 3666 3665', 14512 'STATE 4 t 3668 3667', 14513 'STATE 5 c 3670 3669', 14514 'STATE 1 o 3672 3671', 14515 'STATE 6 # 3455 3399', 14516 'STATE 3 d 3674 3673', 14517 'STATE 3 d 3676 3675', 14518 'STATE 5 e 3678 3677', 14519 'PHONE uw1', 14520 'STATE 4 n 3680 3679', 14521 'STATE 6 i 3444 3681', 14522 'STATE 5 a 3444 3682', 14523 'STATE 6 e 3444 3683', 14524 'STATE 2 t 3493 3684', 14525 'STATE 5 t 3399 3685', 14526 'STATE 5 m 3686 3399', 14527 'STATE 1 0 3687 3399', 14528 'STATE 2 # 3524 3399', 14529 'STATE 3 h 3399 3688', 14530 'STATE 4 l 3455 3393', 14531 'STATE 2 b 3690 3689', 14532 'STATE 2 a 3399 3691', 14533 'STATE 6 a 3385 3692', 14534 'STATE 5 n 3694 3693', 14535 'STATE 6 t 3385 3695', 14536 'STATE 5 c 3444 3696', 14537 'STATE 6 a 3399 3393', 14538 'STATE 1 0 3697 3393', 14539 'STATE 1 0 3699 3698', 14540 'STATE 6 # 3385 3399', 14541 'STATE 6 # 3399 3700', 14542 'STATE 3 w 3600 3701', 14543 'STATE 6 p 3494 3702', 14544 'STATE 3 h 3703 3399', 14545 'STATE 2 # 3705 3704', 14546 'STATE 3 h 3399 3706', 14547 'STATE 3 h 3708 3707', 14548 'STATE 3 i 3710 3709', 14549 'STATE 6 c 3494 3711', 14550 'STATE 3 d 3444 3399', 14551 'STATE 3 s 3522 3712', 14552 'STATE 3 i 3399 3713', 14553 'STATE 6 v 3399 3714', 14554 'STATE 1 0 3385 3389', 14555 'STATE 1 a 3399 3715', 14556 'STATE 2 n 3385 3399', 14557 'STATE 4 s 3717 3716', 14558 'STATE 2 v 3437 3718', 14559 'STATE 3 u 3720 3719', 14560 'STATE 4 e 3399 3721', 14561 'STATE 2 n 3722 3399', 14562 'STATE 3 z 3522 3723', 14563 'STATE 2 i 3522 3724', 14564 'STATE 1 o 3522 3725', 14565 'STATE 1 e 3455 3726', 14566 'STATE 1 # 3399 3455', 14567 'STATE 2 r 3728 3727', 14568 'STATE 2 l 3393 3729', 14569 'STATE 2 o 3455 3730', 14570 'STATE 1 e 3522 3731', 14571 'STATE 2 b 3399 3732', 14572 'STATE 3 w 3600 3399', 14573 'STATE 1 e 3444 3399', 14574 'STATE 1 t 3399 3733', 14575 'STATE 1 y 3399 3734', 14576 'STATE 1 e 3399 3735', 14577 'STATE 2 f 3444 3736', 14578 'STATE 4 l 3738 3737', 14579 'STATE 5 e 3740 3739', 14580 'STATE 6 i 3385 3741', 14581 'STATE 4 y 3399 3742', 14582 'STATE 4 s 3744 3743', 14583 'STATE 6 s 3746 3745', 14584 'STATE 4 t 3748 3747', 14585 'STATE 1 # 3385 3749', 14586 'STATE 5 l 3751 3750', 14587 'STATE 1 # 3753 3752', 14588 'STATE 1 f 3385 3754', 14589 'STATE 1 e 3455 3755', 14590 'STATE 4 n 3757 3756', 14591 'STATE 6 a 3455 3385', 14592 'STATE 4 x 3759 3758', 14593 'STATE 4 m 3761 3760', 14594 'STATE 3 t 3762 3399', 14595 'STATE 5 t 3762 3399', 14596 'STATE 3 b 3455 3763', 14597 'STATE 6 l 3764 3399', 14598 'STATE 4 y 3524 3765', 14599 'STATE 6 w 3455 3766', 14600 'STATE 5 s 3399 3762', 14601 'STATE 6 l 3385 3767', 14602 'STATE 6 v 3494 3444', 14603 'STATE 3 d 3399 3768', 14604 'STATE 6 l 3399 3524', 14605 'STATE 6 b 3393 3399', 14606 'STATE 6 t 3444 3769', 14607 'STATE 2 0 3524 3770', 14608 'STATE 5 m 3393 3771', 14609 'STATE 3 r 3399 3393', 14610 'STATE 3 g 3399 3772', 14611 'STATE 2 b 3385 3773', 14612 'STATE 5 t 3393 3774', 14613 'STATE 6 d 3444 3393', 14614 'STATE 5 v 3385 3393', 14615 'STATE 5 l 3776 3775', 14616 'STATE 3 b 3393 3777', 14617 'STATE 2 b 3385 3778', 14618 'STATE 6 i 3385 3393', 14619 'STATE 3 z 3780 3779', 14620 'STATE 3 u 3762 3399', 14621 'STATE 3 p 3399 3385', 14622 'STATE 6 p 3385 3781', 14623 'STATE 6 s 3494 3522', 14624 'STATE 3 d 3494 3782', 14625 'STATE 2 e 3399 3385', 14626 'STATE 6 o 3385 3783', 14627 'STATE 1 # 3785 3784', 14628 'STATE 2 w 3385 3786', 14629 'STATE 2 r 3399 3522', 14630 'STATE 3 p 3399 3787', 14631 'STATE 3 v 3399 3788', 14632 'STATE 1 a 3790 3789', 14633 'STATE 6 s 3399 3385', 14634 'STATE 1 # 3792 3791', 14635 'STATE 3 d 3794 3793', 14636 'STATE 3 s 3455 3795', 14637 'STATE 1 # 3600 3796', 14638 'STATE 3 l 3455 3797', 14639 'STATE 2 q 3524 3399', 14640 'STATE 4 y 3399 3798', 14641 'STATE 1 e 3522 3799', 14642 'STATE 3 s 3522 3800', 14643 'STATE 2 e 3522 3801', 14644 'STATE 2 i 3522 3385', 14645 'STATE 1 i 3455 3802', 14646 'STATE 2 h 3455 3385', 14647 'STATE 1 e 3455 3385', 14648 'STATE 4 s 3803 3393', 14649 'STATE 3 r 3385 3455', 14650 'STATE 2 s 3522 3804', 14651 'STATE 3 j 3399 3805', 14652 'STATE 1 s 3806 3399', 14653 'STATE 2 u 3399 3807', 14654 'STATE 1 m 3399 3808', 14655 'STATE 1 n 3444 3809', 14656 'STATE 4 w 3811 3810', 14657 'STATE 5 y 3813 3812', 14658 'STATE 5 d 3815 3814', 14659 'STATE 6 # 3817 3816', 14660 'STATE 1 # 3819 3818', 14661 'STATE 4 w 3600 3820', 14662 'STATE 4 u 3822 3821', 14663 'STATE 6 o 3824 3823', 14664 'STATE 6 l 3455 3825', 14665 'STATE 3 m 3455 3826', 14666 'STATE 4 s 3828 3827', 14667 'STATE 3 u 3399 3829', 14668 'STATE 3 m 3455 3830', 14669 'STATE 4 w 3832 3831', 14670 'STATE 6 o 3385 3833', 14671 'STATE 2 p 3399 3834', 14672 'STATE 2 d 3835 3399', 14673 'STATE 5 n 3385 3836', 14674 'STATE 6 e 3455 3399', 14675 'STATE 4 t 3837 3399', 14676 'STATE 6 i 3455 3838', 14677 'STATE 4 y 3840 3839', 14678 'STATE 2 # 3385 3841', 14679 'STATE 4 l 3843 3842', 14680 'STATE 6 g 3385 3844', 14681 'PHONE oy1', 14682 'STATE 3 d 3600 3845', 14683 'STATE 3 j 3600 3385', 14684 'STATE 5 a 3847 3846', 14685 'STATE 5 a 3455 3848', 14686 'STATE 5 e 3494 3849', 14687 'STATE 5 j 3524 3850', 14688 'STATE 6 v 3393 3851', 14689 'STATE 3 r 3852 3524', 14690 'STATE 3 w 3854 3853', 14691 'STATE 3 c 3399 3855', 14692 'STATE 6 # 3856 3393', 14693 'STATE 6 u 3858 3857', 14694 'STATE 6 a 3444 3393', 14695 'STATE 6 i 3393 3859', 14696 'STATE 6 o 3385 3860', 14697 'STATE 2 t 3385 3861', 14698 'STATE 3 a 3385 3862', 14699 'STATE 1 0 3389 3399', 14700 'STATE 1 # 3385 3399', 14701 'STATE 6 r 3399 3863', 14702 'STATE 3 r 3393 3864', 14703 'STATE 2 t 3399 3389', 14704 'STATE 2 t 3385 3522', 14705 'STATE 1 l 3399 3389', 14706 'STATE 6 # 3389 3865', 14707 'STATE 3 z 3389 3866', 14708 'STATE 6 d 3399 3867', 14709 'STATE 2 r 3385 3399', 14710 'STATE 2 n 3399 3868', 14711 'STATE 2 s 3385 3399', 14712 'STATE 4 d 3870 3869', 14713 'STATE 4 d 3455 3871', 14714 'STATE 3 c 3455 3872', 14715 'STATE 3 h 3874 3873', 14716 'STATE 3 i 3876 3875', 14717 'STATE 4 m 3455 3877', 14718 'STATE 1 a 3399 3522', 14719 'STATE 3 l 3879 3878', 14720 'STATE 2 a 3522 3880', 14721 'STATE 2 p 3455 3881', 14722 'STATE 2 n 3393 3882', 14723 'STATE 2 h 3522 3883', 14724 'STATE 3 i 3399 3884', 14725 'STATE 2 a 3444 3399', 14726 'STATE 2 r 3399 3885', 14727 'STATE 1 o 3399 3886', 14728 'STATE 1 a 3444 3887', 14729 'STATE 4 o 3889 3888', 14730 'STATE 1 # 3891 3890', 14731 'STATE 5 l 3893 3892', 14732 'STATE 6 # 3399 3455', 14733 'STATE 5 b 3455 3894', 14734 'STATE 6 o 3896 3895', 14735 'STATE 6 s 3399 3897', 14736 'STATE 2 y 3393 3898', 14737 'STATE 4 w 3900 3899', 14738 'STATE 4 s 3902 3901', 14739 'STATE 1 # 3904 3903', 14740 'STATE 4 o 3444 3905', 14741 'STATE 3 r 3762 3399', 14742 'STATE 3 n 3455 3906', 14743 'STATE 2 i 3399 3907', 14744 'STATE 6 h 3730 3908', 14745 'STATE 1 r 3385 3909', 14746 'STATE 4 c 3385 3910', 14747 'STATE 1 # 3385 3911', 14748 'STATE 1 # 3385 3912', 14749 'STATE 3 s 3914 3913', 14750 'STATE 1 a 3576 3915', 14751 'STATE 5 s 3917 3916', 14752 'STATE 4 l 3790 3399', 14753 'STATE 1 o 3455 3918', 14754 'STATE 5 z 3399 3919', 14755 'STATE 1 a 3920 3399', 14756 'STATE 6 # 3399 3385', 14757 'STATE 1 e 3455 3921', 14758 'STATE 2 # 3923 3922', 14759 'STATE 5 e 3399 3924', 14760 'STATE 5 a 3494 3925', 14761 'STATE 4 v 3927 3926', 14762 'STATE 5 i 3929 3928', 14763 'STATE 5 i 3931 3930', 14764 'STATE 3 l 3933 3932', 14765 'STATE 4 j 3494 3934', 14766 'STATE 6 l 3936 3935', 14767 'STATE 5 e 3393 3937', 14768 'STATE 5 o 3494 3385', 14769 'STATE 6 o 3399 3938', 14770 'STATE 6 f 3393 3939', 14771 'STATE 2 f 3524 3399', 14772 'STATE 6 i 3941 3940', 14773 'STATE 5 t 3385 3393', 14774 'STATE 6 l 3393 3399', 14775 'STATE 1 # 3393 3444', 14776 'STATE 6 o 3943 3942', 14777 'STATE 5 s 3385 3393', 14778 'STATE 6 l 3444 3393', 14779 'STATE 3 l 3944 3393', 14780 'STATE 1 s 3385 3945', 14781 'STATE 1 l 3947 3946', 14782 'STATE 3 p 3399 3948', 14783 'STATE 1 # 3399 3949', 14784 'STATE 3 j 3385 3950', 14785 'STATE 2 # 3568 3494', 14786 'STATE 6 s 3952 3951', 14787 'STATE 1 d 3399 3953', 14788 'STATE 4 y 3955 3954', 14789 'STATE 3 w 3957 3956', 14790 'STATE 4 z 3522 3958', 14791 'STATE 3 g 3455 3959', 14792 'STATE 3 r 3961 3960', 14793 'PHONE y-uw', 14794 'STATE 2 o 3963 3962', 14795 'STATE 2 l 3399 3455', 14796 'STATE 2 t 3399 3964', 14797 'STATE 1 z 3522 3965', 14798 'STATE 2 a 3522 3966', 14799 'STATE 2 u 3522 3385', 14800 'STATE 3 p 3968 3967', 14801 'STATE 2 t 3393 3444', 14802 'STATE 1 w 3522 3969', 14803 'STATE 2 i 3399 3970', 14804 'STATE 2 n 3399 3971', 14805 'STATE 1 r 3399 3972', 14806 'STATE 2 b 3533 3973', 14807 'STATE 6 # 3975 3974', 14808 'STATE 3 g 3399 3976', 14809 'STATE 6 # 3600 3977', 14810 'STATE 5 e 3979 3978', 14811 'STATE 5 d 3981 3980', 14812 'STATE 6 # 3983 3982', 14813 'STATE 6 # 3985 3984', 14814 'STATE 3 t 3385 3986', 14815 'STATE 3 u 3385 3987', 14816 'STATE 6 d 3455 3988', 14817 'STATE 2 l 3393 3989', 14818 'STATE 4 s 3991 3990', 14819 'STATE 2 s 3385 3992', 14820 'STATE 3 o 3399 3993', 14821 'STATE 3 r 3385 3994', 14822 'STATE 3 n 3455 3995', 14823 'STATE 4 n 3455 3996', 14824 'STATE 3 o 3399 3997', 14825 'STATE 2 n 3385 3998', 14826 'STATE 3 l 3399 3999', 14827 'STATE 1 # 3385 4000', 14828 'STATE 3 c 3455 4001', 14829 'STATE 1 # 3385 4002', 14830 'STATE 3 u 3385 4003', 14831 'STATE 3 g 4005 4004', 14832 'STATE 3 v 3385 4006', 14833 'STATE 1 r 3385 3455', 14834 'STATE 5 c 3385 3399', 14835 'STATE 2 v 4007 3399', 14836 'STATE 2 n 3385 3437', 14837 'STATE 2 t 3455 4008', 14838 'STATE 5 e 3399 3455', 14839 'STATE 5 a 3455 3399', 14840 'STATE 2 t 3399 4009', 14841 'STATE 4 n 4011 4010', 14842 'STATE 4 o 4013 4012', 14843 'STATE 3 k 4015 4014', 14844 'STATE 5 i 4017 4016', 14845 'STATE 4 c 4019 4018', 14846 'STATE 6 a 3393 4020', 14847 'STATE 5 u 4022 4021', 14848 'STATE 6 c 3385 4023', 14849 'STATE 6 r 4025 4024', 14850 'STATE 6 l 3444 3385', 14851 'STATE 3 s 3600 4026', 14852 'STATE 5 a 4027 3600', 14853 'STATE 5 e 4029 4028', 14854 'STATE 6 i 3455 4030', 14855 'STATE 4 c 3494 4031', 14856 'STATE 6 i 3522 4032', 14857 'STATE 6 u 3399 4033', 14858 'STATE 6 s 3393 4034', 14859 'STATE 6 t 4036 4035', 14860 'STATE 2 c 3444 4037', 14861 'STATE 5 f 4039 4038', 14862 'STATE 5 l 3385 3393', 14863 'STATE 6 e 3393 3385', 14864 'STATE 2 d 3385 4040', 14865 'STATE 5 y 4042 4041', 14866 'STATE 5 t 4043 3399', 14867 'STATE 6 l 4045 4044', 14868 'STATE 6 r 3399 4046', 14869 'STATE 6 a 3399 4047', 14870 'STATE 2 p 3385 4048', 14871 'STATE 1 0 3385 3399', 14872 'STATE 3 f 3399 4049', 14873 'STATE 4 e 3399 4050', 14874 'STATE 3 k 4052 4051', 14875 'STATE 1 # 3399 4053', 14876 'STATE 2 e 3600 3399', 14877 'STATE 4 a 3444 4054', 14878 'STATE 3 h 4056 4055', 14879 'STATE 1 e 3600 4027', 14880 'STATE 2 b 4027 3600', 14881 'STATE 2 c 4058 4057', 14882 'STATE 3 n 3522 3455', 14883 'STATE 2 s 4060 4059', 14884 'STATE 1 p 3494 4061', 14885 'STATE 2 o 3522 3494', 14886 'STATE 3 g 3455 4062', 14887 'STATE 2 a 3455 4063', 14888 'STATE 1 r 3455 4064', 14889 'STATE 1 a 3399 4065', 14890 'STATE 1 o 3399 4066', 14891 'STATE 1 c 3444 4067', 14892 'STATE 1 i 3444 4068', 14893 'STATE 1 # 4070 4069', 14894 'STATE 5 e 4072 4071', 14895 'STATE 1 # 4074 4073', 14896 'STATE 2 c 3600 4075', 14897 'STATE 3 r 3600 4076', 14898 'STATE 6 l 3600 3399', 14899 'STATE 6 # 4078 4077', 14900 'STATE 3 f 4080 4079', 14901 'STATE 3 o 3399 4081', 14902 'STATE 3 w 4083 4082', 14903 'STATE 1 # 4085 4084', 14904 'STATE 5 y 3455 4086', 14905 'STATE 2 l 4088 4087', 14906 'STATE 3 l 3385 3455', 14907 'STATE 3 g 4090 4089', 14908 'STATE 2 i 3393 4091', 14909 'STATE 6 k 3385 4092', 14910 'STATE 6 l 4094 4093', 14911 'STATE 3 l 3385 4095', 14912 'STATE 4 u 3399 4096', 14913 'STATE 6 a 3522 4097', 14914 'STATE 4 n 3455 4098', 14915 'STATE 3 r 3385 4099', 14916 'STATE 3 u 4101 4100', 14917 'STATE 1 # 4103 4102', 14918 'STATE 2 o 3399 4104', 14919 'STATE 2 i 3385 4105', 14920 'STATE 1 i 3385 3455', 14921 'STATE 4 d 3522 4106', 14922 'STATE 1 d 3385 4107', 14923 'STATE 3 k 4109 4108', 14924 'STATE 2 d 3455 4110', 14925 'STATE 3 r 3455 4111', 14926 'STATE 5 e 3399 3437', 14927 'STATE 1 q 3455 4112', 14928 'STATE 2 c 4113 3596', 14929 'STATE 6 c 4115 4114', 14930 'STATE 5 g 4117 4116', 14931 'STATE 5 t 4119 4118', 14932 'STATE 5 r 3399 4120', 14933 'STATE 5 r 3385 3524', 14934 'STATE 6 e 3524 3393', 14935 'STATE 6 c 3385 4121', 14936 'STATE 6 s 3494 3385', 14937 'STATE 4 g 4123 4122', 14938 'STATE 5 e 3455 4124', 14939 'STATE 6 r 3385 4125', 14940 'STATE 6 o 4127 4126', 14941 'STATE 6 c 3522 3455', 14942 'STATE 6 s 3393 3455', 14943 'STATE 5 e 3389 4128', 14944 'STATE 5 e 3444 4129', 14945 'STATE 3 j 3600 3437', 14946 'PHONE uw', 14947 'STATE 4 c 4131 4130', 14948 'STATE 6 r 4133 4132', 14949 'STATE 6 r 4135 4134', 14950 'STATE 4 g 3494 3455', 14951 'STATE 6 u 3389 3385', 14952 'STATE 3 s 4136 3399', 14953 'STATE 6 c 3444 3399', 14954 'STATE 1 t 3385 4137', 14955 'STATE 3 r 3444 4138', 14956 'STATE 3 d 3393 4139', 14957 'STATE 3 l 3393 4140', 14958 'STATE 3 l 3393 3385', 14959 'STATE 1 t 3385 3393', 14960 'STATE 1 0 4142 4141', 14961 'STATE 6 l 3385 3399', 14962 'STATE 6 y 3399 4143', 14963 'STATE 6 t 3385 4144', 14964 'STATE 3 g 3522 3385', 14965 'STATE 2 r 3389 3399', 14966 'STATE 6 s 4146 4145', 14967 'STATE 6 # 3385 4147', 14968 'STATE 6 e 3399 3385', 14969 'STATE 4 a 4149 4148', 14970 'STATE 3 v 4151 4150', 14971 'STATE 2 c 3399 4152', 14972 'STATE 3 m 3399 4153', 14973 'STATE 4 o 3444 4154', 14974 'STATE 3 z 3455 4155', 14975 'STATE 2 t 3399 3455', 14976 'STATE 3 p 3455 4156', 14977 'STATE 1 o 3524 3455', 14978 'STATE 2 a 3385 4157', 14979 'STATE 4 p 3385 3522', 14980 'STATE 3 r 4159 4158', 14981 'STATE 3 h 3455 4160', 14982 'STATE 1 a 3455 3385', 14983 'STATE 1 i 3522 3455', 14984 'STATE 3 a 3399 4161', 14985 'STATE 2 g 3399 3444', 14986 'STATE 1 z 3444 4162', 14987 'STATE 1 r 3882 4163', 14988 'STATE 5 i 4165 4164', 14989 'STATE 3 o 3399 4166', 14990 'STATE 4 u 4168 4167', 14991 'STATE 4 k 3494 4169', 14992 'STATE 6 l 3393 4170', 14993 'STATE 3 d 3444 4171', 14994 'STATE 6 c 3399 4172', 14995 'STATE 2 s 3600 4173', 14996 'STATE 2 n 4175 4174', 14997 'STATE 3 a 3399 4176', 14998 'STATE 3 h 3385 4177', 14999 'STATE 6 t 3522 4178', 15000 'STATE 3 u 4049 4179', 15001 'STATE 1 # 3385 4180', 15002 'STATE 2 o 3522 4181', 15003 'STATE 5 c 4183 4182', 15004 'STATE 3 u 4185 4184', 15005 'STATE 5 a 4187 4186', 15006 'STATE 1 l 3455 4188', 15007 'STATE 1 a 3385 3522', 15008 'STATE 1 # 4190 4189', 15009 'STATE 6 r 3385 3455', 15010 'STATE 3 c 3393 4191', 15011 'STATE 6 e 4193 4192', 15012 'STATE 3 n 3455 4194', 15013 'STATE 3 l 3455 3399', 15014 'STATE 3 j 3385 4195', 15015 'STATE 3 u 3399 4196', 15016 'STATE 6 n 3399 3385', 15017 'STATE 3 l 3455 4197', 15018 'STATE 2 s 3385 4198', 15019 'STATE 4 l 4200 4199', 15020 'STATE 2 q 3385 4201', 15021 'STATE 6 a 4203 4202', 15022 'STATE 2 p 3385 4204', 15023 'STATE 3 r 3385 4205', 15024 'STATE 1 d 3385 4206', 15025 'STATE 1 o 3522 4207', 15026 'STATE 3 w 3385 4208', 15027 'STATE 3 v 3455 4209', 15028 'STATE 1 o 3455 3522', 15029 'STATE 2 g 3522 3455', 15030 'STATE 3 g 3455 4210', 15031 'STATE 6 r 3455 4211', 15032 'STATE 1 s 3455 3399', 15033 'STATE 4 m 4213 4212', 15034 'STATE 4 l 3455 4214', 15035 'STATE 6 e 4216 4215', 15036 'STATE 6 l 3389 4217', 15037 'STATE 6 # 4219 4218', 15038 'STATE 3 o 3399 4220', 15039 'STATE 3 l 4222 4221', 15040 'STATE 6 m 3494 4223', 15041 'STATE 5 p 4225 4224', 15042 'STATE 6 o 3385 3494', 15043 'STATE 5 i 4227 4226', 15044 'STATE 6 n 3385 4228', 15045 'STATE 6 y 3455 4229', 15046 'STATE 5 m 3522 3385', 15047 'STATE 5 a 3389 4230', 15048 'STATE 5 a 3385 3389', 15049 'STATE 4 g 4232 4231', 15050 'STATE 5 u 3494 4233', 15051 'STATE 4 s 4235 4234', 15052 'STATE 4 f 3385 4236', 15053 'STATE 4 m 3393 4237', 15054 'STATE 4 m 3444 3455', 15055 'STATE 5 n 3524 3399', 15056 'STATE 1 l 4239 4238', 15057 'STATE 5 n 3399 3385', 15058 'STATE 3 p 3393 4240', 15059 'STATE 6 a 3393 4241', 15060 'STATE 5 t 4243 4242', 15061 'STATE 5 d 4245 4244', 15062 'STATE 6 i 3399 3385', 15063 'STATE 3 s 3399 4246', 15064 'STATE 3 d 3385 4247', 15065 'STATE 3 t 3399 3385', 15066 'STATE 3 t 3792 4248', 15067 'STATE 4 o 3444 4249', 15068 'STATE 3 y 3399 4250', 15069 'STATE 1 # 4251 3399', 15070 'STATE 1 u 3524 3399', 15071 'STATE 1 a 4252 3399', 15072 'STATE 3 y 3399 4253', 15073 'STATE 4 e 3399 4254', 15074 'STATE 3 x 3455 4255', 15075 'STATE 3 g 3455 4256', 15076 'STATE 4 c 3385 4257', 15077 'STATE 1 b 3522 4258', 15078 'STATE 2 o 3494 3522', 15079 'STATE 1 u 3455 4259', 15080 'STATE 3 l 4260 3399', 15081 'STATE 1 s 3444 4261', 15082 'STATE 1 t 3393 4262', 15083 'STATE 4 y 3399 4263', 15084 'STATE 6 a 4265 4264', 15085 'STATE 2 p 4267 4266', 15086 'STATE 4 c 4269 4268', 15087 'STATE 5 m 3393 4270', 15088 'STATE 3 o 3399 4271', 15089 'STATE 3 k 3399 4272', 15090 'STATE 5 r 3393 4273', 15091 'STATE 6 l 4274 3399', 15092 'STATE 3 l 3600 3399', 15093 'STATE 6 s 4276 4275', 15094 'STATE 6 a 3455 4277', 15095 'STATE 3 u 3399 4278', 15096 'STATE 6 # 3522 4279', 15097 'STATE 1 r 3522 3385', 15098 'STATE 2 n 4281 4280', 15099 'STATE 3 b 4283 4282', 15100 'STATE 2 e 3522 3385', 15101 'STATE 3 o 4285 4284', 15102 'STATE 6 e 4287 4286', 15103 'STATE 3 o 3399 4288', 15104 'STATE 2 q 3385 3399', 15105 'STATE 5 o 3385 4289', 15106 'STATE 2 e 3385 4290', 15107 'STATE 1 b 3522 4291', 15108 'STATE 3 m 3385 4292', 15109 'STATE 6 l 3385 4293', 15110 'STATE 1 o 3393 4294', 15111 'STATE 4 n 4296 4295', 15112 'STATE 4 n 4298 4297', 15113 'STATE 6 n 3455 4299', 15114 'STATE 3 z 3385 3600', 15115 'STATE 2 s 3385 4300', 15116 'STATE 4 s 4302 4301', 15117 'STATE 4 s 3385 3455', 15118 'STATE 6 i 3385 4303', 15119 'STATE 3 f 3522 4304', 15120 'STATE 2 h 3399 4305', 15121 'STATE 1 d 3385 4306', 15122 'STATE 2 o 3399 4307', 15123 'STATE 2 c 3385 4308', 15124 'STATE 1 a 3385 3399', 15125 'STATE 6 r 4310 4309', 15126 'STATE 4 l 4311 3385', 15127 'STATE 3 v 3455 4312', 15128 'STATE 3 m 3389 4313', 15129 'STATE 2 r 3385 4314', 15130 'STATE 5 a 3399 3579', 15131 'STATE 4 q 4316 4315', 15132 'STATE 5 b 4318 4317', 15133 'STATE 4 v 3494 4319', 15134 'STATE 5 e 3385 4320', 15135 'STATE 5 t 3385 4321', 15136 'STATE 6 r 3455 4322', 15137 'STATE 5 u 4324 4323', 15138 'STATE 5 e 3393 4325', 15139 'STATE 6 a 4327 4326', 15140 'STATE 5 l 3444 4328', 15141 'STATE 6 e 3522 4329', 15142 'STATE 6 l 3494 4330', 15143 'STATE 4 p 4332 4331', 15144 'STATE 6 e 3385 3389', 15145 'STATE 6 m 3393 4333', 15146 'STATE 6 m 3385 3455', 15147 'STATE 5 e 3494 4334', 15148 'STATE 6 t 3455 4335', 15149 'STATE 5 o 4336 3385', 15150 'STATE 4 q 4338 4337', 15151 'STATE 5 r 3494 4339', 15152 'STATE 5 i 3455 4340', 15153 'STATE 4 c 3455 4341', 15154 'STATE 6 n 3455 4342', 15155 'STATE 4 s 3385 4343', 15156 'STATE 4 l 4345 4344', 15157 'STATE 3 c 4347 4346', 15158 'STATE 3 n 3444 3393', 15159 'STATE 2 t 3393 4348', 15160 'STATE 6 t 3943 3393', 15161 'STATE 2 a 4349 3399', 15162 'STATE 3 b 4350 3399', 15163 'STATE 3 p 3399 4351', 15164 'STATE 6 a 3385 3399', 15165 'STATE 3 c 3399 4352', 15166 'STATE 3 s 3385 4353', 15167 'STATE 6 l 4355 4354', 15168 'STATE 3 i 3399 4356', 15169 'STATE 1 a 3444 4357', 15170 'STATE 3 r 3524 3399', 15171 'STATE 2 n 3393 3399', 15172 'STATE 3 f 3399 4358', 15173 'STATE 4 y 3399 4359', 15174 'STATE 3 i 3399 4360', 15175 'STATE 3 c 3455 4361', 15176 'STATE 4 x 3385 4362', 15177 'STATE 3 p 3494 4363', 15178 'STATE 1 a 4365 4364', 15179 'STATE 2 a 4366 3399', 15180 'STATE 1 n 3444 4367', 15181 'STATE 1 l 3444 4368', 15182 'STATE 6 n 4370 4369', 15183 'STATE 6 c 4372 4371', 15184 'STATE 2 s 3385 4373', 15185 'STATE 3 u 4375 4374', 15186 'STATE 4 u 3399 4376', 15187 'STATE 5 h 4378 4377', 15188 'STATE 5 k 4379 3385', 15189 'STATE 5 x 4380 3399', 15190 'STATE 4 s 4382 4381', 15191 'STATE 5 l 3444 4383', 15192 'STATE 5 d 3393 4384', 15193 'STATE 3 n 3455 3399', 15194 'STATE 5 i 4386 4385', 15195 'STATE 5 e 3399 4387', 15196 'STATE 3 g 4389 4388', 15197 'STATE 5 e 4391 4390', 15198 'STATE 6 e 3385 3455', 15199 'STATE 6 e 4393 4392', 15200 'STATE 6 e 3455 4394', 15201 'STATE 2 r 4396 4395', 15202 'STATE 1 a 3522 3385', 15203 'STATE 5 z 4398 4397', 15204 'STATE 1 b 3393 3399', 15205 'STATE 6 y 3455 4399', 15206 'STATE 1 o 3385 3455', 15207 'STATE 2 e 3455 4400', 15208 'STATE 1 # 3385 4401', 15209 'STATE 3 l 3524 4402', 15210 'STATE 2 e 3385 4403', 15211 'STATE 1 e 3455 4404', 15212 'STATE 3 h 3522 3459', 15213 'STATE 1 a 3393 4405', 15214 'STATE 4 l 3455 4406', 15215 'STATE 1 i 4408 4407', 15216 'STATE 4 l 3455 3385', 15217 'STATE 1 l 3455 4409', 15218 'STATE 1 n 3455 4410', 15219 'STATE 4 t 3385 4411', 15220 'STATE 4 u 3444 4412', 15221 'STATE 3 s 3385 4413', 15222 'STATE 2 d 3385 4414', 15223 'STATE 6 i 3455 3385', 15224 'STATE 6 e 3385 3399', 15225 'STATE 2 i 3399 4415', 15226 'STATE 2 i 3522 4359', 15227 'STATE 2 q 3385 4416', 15228 'STATE 2 n 4418 4417', 15229 'STATE 3 c 4419 3455', 15230 'STATE 3 f 3385 3522', 15231 'STATE 3 r 4421 4420', 15232 'STATE 2 b 3522 4422', 15233 'STATE 2 n 4424 4423', 15234 'STATE 4 v 4426 4425', 15235 'STATE 6 a 3393 3494', 15236 'STATE 5 a 4428 4427', 15237 'STATE 6 l 3385 3522', 15238 'STATE 4 d 3385 4429', 15239 'STATE 5 u 3455 4430', 15240 'STATE 5 d 3522 4431', 15241 'STATE 6 a 3522 3385', 15242 'STATE 5 i 4433 4432', 15243 'STATE 4 g 4435 4434', 15244 'STATE 5 a 4437 4436', 15245 'STATE 3 b 3385 4438', 15246 'STATE 3 t 3385 4439', 15247 'STATE 6 a 3385 3393', 15248 'STATE 6 o 3393 4440', 15249 'STATE 5 p 4442 4441', 15250 'STATE 4 f 3455 4443', 15251 'STATE 5 r 4445 4444', 15252 'STATE 5 h 3385 4446', 15253 'STATE 6 l 4448 4447', 15254 'STATE 6 r 4450 4449', 15255 'STATE 6 n 3385 3389', 15256 'STATE 4 f 4452 4451', 15257 'STATE 6 i 3385 3494', 15258 'STATE 6 o 3393 3385', 15259 'STATE 6 n 3444 4453', 15260 'STATE 6 a 4455 4454', 15261 'STATE 6 m 3455 3444', 15262 'STATE 4 p 3385 3444', 15263 'STATE 6 # 3393 4456', 15264 'STATE 6 t 3385 3455', 15265 'STATE 3 h 3393 4457', 15266 'STATE 1 # 3399 3393', 15267 'STATE 5 l 3393 4458', 15268 'STATE 1 c 3399 4459', 15269 'STATE 6 a 3385 4460', 15270 'STATE 6 a 4461 3399', 15271 'STATE 3 g 3399 4097', 15272 'STATE 3 c 3385 4462', 15273 'STATE 3 p 4464 4463', 15274 'STATE 3 p 3385 3399', 15275 'STATE 4 i 3524 4465', 15276 'STATE 2 d 3444 4466', 15277 'STATE 3 b 4464 4467', 15278 'STATE 2 a 3385 3455', 15279 'STATE 2 e 3653 4468', 15280 'STATE 1 b 3455 4469', 15281 'STATE 4 z 3522 3385', 15282 'STATE 1 h 3494 4470', 15283 'STATE 1 # 4359 4471', 15284 'STATE 3 c 3385 3455', 15285 'STATE 1 d 3399 4472', 15286 'STATE 1 p 3444 3399', 15287 'STATE 1 y 3444 4473', 15288 'STATE 5 k 4475 4474', 15289 'STATE 4 m 4477 4476', 15290 'STATE 6 o 4479 4478', 15291 'STATE 4 t 3385 4480', 15292 'STATE 2 e 4481 3393', 15293 'STATE 4 u 3399 4482', 15294 'STATE 2 q 4483 3399', 15295 'STATE 4 v 4485 4484', 15296 'STATE 5 y 4487 4486', 15297 'STATE 4 s 3385 4488', 15298 'STATE 3 b 4490 4489', 15299 'PHONE ow1', 15300 'STATE 4 t 4492 4491', 15301 'STATE 2 a 4494 4493', 15302 'STATE 5 w 3399 4495', 15303 'STATE 2 c 3393 3882', 15304 'STATE 6 n 4497 4496', 15305 'STATE 6 a 4499 4498', 15306 'STATE 3 h 3385 4500', 15307 'STATE 5 e 3455 4501', 15308 'STATE 6 c 3385 4502', 15309 'STATE 5 a 4503 3385', 15310 'STATE 2 e 3455 4504', 15311 'STATE 2 s 4506 4505', 15312 'STATE 3 c 3455 4507', 15313 'STATE 6 y 3455 4508', 15314 'STATE 2 a 4510 4509', 15315 'STATE 3 d 3385 4511', 15316 'STATE 5 i 4513 4512', 15317 'STATE 6 o 3385 4514', 15318 'STATE 2 e 3455 4515', 15319 'STATE 3 c 3455 4516', 15320 'STATE 5 z 3522 3385', 15321 'STATE 3 r 3385 4517', 15322 'STATE 3 s 3455 4518', 15323 'STATE 1 a 3455 4519', 15324 'STATE 2 a 3393 4520', 15325 'STATE 6 o 3455 3399', 15326 'STATE 6 u 3385 3455', 15327 'STATE 2 s 3385 3455', 15328 'STATE 2 n 3385 4521', 15329 'STATE 2 t 4523 4522', 15330 'STATE 3 r 3385 4297', 15331 'STATE 3 k 3455 4524', 15332 'STATE 3 c 3385 4525', 15333 'STATE 1 v 4527 4526', 15334 'STATE 3 v 4529 4528', 15335 'STATE 3 r 3385 3399', 15336 'STATE 2 t 3385 4530', 15337 'STATE 6 o 3455 3385', 15338 'STATE 1 o 3455 3385', 15339 'STATE 3 f 3385 3455', 15340 'STATE 1 e 3389 4531', 15341 'STATE 3 r 3522 4532', 15342 'STATE 1 a 3455 4533', 15343 'STATE 3 t 3385 3455', 15344 'STATE 4 c 4535 4534', 15345 'STATE 6 r 3385 4536', 15346 'STATE 6 l 4538 4537', 15347 'STATE 6 n 3385 3393', 15348 'STATE 4 p 3385 3494', 15349 'STATE 5 i 3385 4539', 15350 'STATE 5 v 3522 3385', 15351 'STATE 5 a 4541 4540', 15352 'STATE 6 o 3393 4542', 15353 'STATE 4 c 4544 4543', 15354 'STATE 3 b 3494 4545', 15355 'STATE 5 o 4546 3385', 15356 'STATE 4 n 3393 4547', 15357 'STATE 6 u 4548 3385', 15358 'STATE 3 p 3385 4549', 15359 'STATE 5 n 4322 3385', 15360 'STATE 5 h 4551 4550', 15361 'STATE 6 a 3494 4552', 15362 'STATE 6 r 4554 4553', 15363 'STATE 5 a 3455 4555', 15364 'STATE 6 e 3455 4556', 15365 'STATE 5 k 3385 4557', 15366 'STATE 5 a 3385 3494', 15367 'STATE 5 a 3494 3385', 15368 'STATE 5 g 3522 4558', 15369 'STATE 5 o 3455 3522', 15370 'STATE 5 u 4560 4559', 15371 'STATE 5 r 3455 4561', 15372 'STATE 6 a 3444 4562', 15373 'STATE 4 b 3455 4563', 15374 'STATE 4 p 3455 3444', 15375 'STATE 6 b 3393 4564', 15376 'STATE 5 k 4566 4565', 15377 'STATE 1 # 3393 4567', 15378 'STATE 3 l 3399 4568', 15379 'STATE 6 o 4569 3399', 15380 'STATE 5 s 3399 4570', 15381 'STATE 6 t 3385 4571', 15382 'STATE 1 0 3385 4572', 15383 'STATE 1 e 3385 3399', 15384 'STATE 4 z 4574 4573', 15385 'STATE 1 c 3399 4575', 15386 'STATE 2 s 3399 4576', 15387 'STATE 3 j 3455 4577', 15388 'STATE 3 r 4579 4578', 15389 'STATE 2 a 3494 4580', 15390 'STATE 3 k 3455 4581', 15391 'STATE 1 n 3444 4582', 15392 'STATE 2 h 4584 4583', 15393 'STATE 2 e 4586 4585', 15394 'STATE 6 e 4587 3385', 15395 'STATE 5 e 4589 4588', 15396 'STATE 2 p 3455 4590', 15397 'STATE 4 d 4592 4591', 15398 'STATE 2 i 3444 4593', 15399 'STATE 4 v 3494 4594', 15400 'STATE 4 d 3393 3455', 15401 'STATE 4 y 4596 4595', 15402 'STATE 4 b 3455 4597', 15403 'STATE 6 m 3455 4598', 15404 'STATE 5 i 3393 3494', 15405 'STATE 3 o 3399 4599', 15406 'STATE 3 l 3399 4600', 15407 'STATE 1 # 3393 4601', 15408 'STATE 2 l 3494 4602', 15409 'STATE 2 e 3522 4603', 15410 'STATE 4 y 3399 4604', 15411 'STATE 3 l 3393 4605', 15412 'STATE 1 a 3524 4606', 15413 'STATE 3 n 3524 3393', 15414 'STATE 3 c 3399 4607', 15415 'STATE 3 o 4609 4608', 15416 'STATE 2 i 3399 4610', 15417 'STATE 2 i 4612 4611', 15418 'STATE 2 o 3385 3393', 15419 'STATE 1 # 3399 4613', 15420 'STATE 5 a 3455 4614', 15421 'STATE 5 o 3522 4615', 15422 'STATE 2 r 3385 4616', 15423 'STATE 2 a 3455 4001', 15424 'STATE 6 s 3385 4617', 15425 'STATE 1 # 3385 4618', 15426 'STATE 3 b 3455 4619', 15427 'STATE 3 c 3455 3385', 15428 'STATE 1 i 3455 4620', 15429 'STATE 3 v 3455 3385', 15430 'STATE 3 r 4622 4621', 15431 'STATE 5 n 4624 4623', 15432 'STATE 6 n 3455 4625', 15433 'STATE 1 l 3522 4626', 15434 'STATE 3 r 3385 4627', 15435 'STATE 2 o 3455 4628', 15436 'STATE 3 h 3455 3393', 15437 'STATE 2 r 3385 4629', 15438 'STATE 6 r 4631 4630', 15439 'STATE 1 e 3393 4632', 15440 'STATE 3 p 3385 4420', 15441 'STATE 3 c 4178 4633', 15442 'STATE 1 s 3385 3455', 15443 'STATE 4 l 4635 4634', 15444 'STATE 3 r 4636 3455', 15445 'STATE 2 s 4638 4637', 15446 'STATE 4 t 3385 3494', 15447 'STATE 1 f 3455 4639', 15448 'STATE 2 l 3385 3455', 15449 'STATE 1 s 3455 4640', 15450 'STATE 2 e 3455 4641', 15451 'STATE 2 l 3522 4642', 15452 'STATE 1 r 4643 3455', 15453 'STATE 4 g 4645 4644', 15454 'STATE 5 o 3494 4646', 15455 'STATE 5 e 4648 4647', 15456 'STATE 5 e 3385 4649', 15457 'STATE 5 p 3522 4650', 15458 'STATE 5 c 4652 4651', 15459 'STATE 5 e 4654 4653', 15460 'STATE 3 m 4656 4655', 15461 'STATE 6 a 4658 4657', 15462 'STATE 4 q 4660 4659', 15463 'STATE 6 r 3494 3385', 15464 'PHONE ey', 15465 'STATE 4 n 3524 3385', 15466 'STATE 3 l 3393 4661', 15467 'STATE 4 n 4662 3385', 15468 'STATE 3 c 3522 4663', 15469 'STATE 6 a 3385 4664', 15470 'STATE 6 i 3494 4665', 15471 'STATE 6 r 3494 4338', 15472 'STATE 5 t 4667 4666', 15473 'STATE 4 t 3455 4668', 15474 'STATE 5 o 3455 4669', 15475 'STATE 6 i 3455 3444', 15476 'STATE 6 d 3494 4670', 15477 'STATE 5 a 3385 4671', 15478 'STATE 5 o 4673 4672', 15479 'STATE 6 s 3393 4674', 15480 'STATE 6 s 3455 4675', 15481 'STATE 5 y 3444 4676', 15482 'STATE 4 p 3455 4677', 15483 'STATE 6 p 3393 4678', 15484 'STATE 5 v 4680 4679', 15485 'STATE 3 p 3393 4681', 15486 'STATE 5 t 3444 3393', 15487 'STATE 3 v 4245 3399', 15488 'STATE 2 m 3399 3385', 15489 'STATE 5 v 3399 4682', 15490 'STATE 6 n 4683 3385', 15491 'STATE 3 m 3385 4684', 15492 'STATE 4 m 4686 4685', 15493 'STATE 1 # 3385 4687', 15494 'STATE 2 a 3393 4688', 15495 'STATE 3 r 4689 3399', 15496 'STATE 3 r 4691 4690', 15497 'STATE 2 r 4693 4692', 15498 'STATE 2 r 3455 3385', 15499 'STATE 1 o 3494 4694', 15500 'STATE 1 k 3455 4695', 15501 'STATE 1 i 3444 3399', 15502 'STATE 1 o 3444 4696', 15503 'STATE 1 s 3444 4697', 15504 'STATE 2 n 4699 4698', 15505 'STATE 3 l 4701 4700', 15506 'STATE 3 n 4703 4702', 15507 'STATE 4 c 4705 4704', 15508 'STATE 2 p 3455 4706', 15509 'STATE 2 c 4708 4707', 15510 'STATE 2 i 3399 4709', 15511 'STATE 6 t 3728 4710', 15512 'STATE 1 s 3385 3393', 15513 'STATE 3 n 3455 4711', 15514 'STATE 3 y 3399 4712', 15515 'STATE 5 e 3399 3524', 15516 'STATE 4 s 4545 3399', 15517 'STATE 5 i 4714 4713', 15518 'STATE 3 u 4716 4715', 15519 'STATE 1 s 3399 3455', 15520 'STATE 2 a 3455 3522', 15521 'STATE 1 # 3385 4717', 15522 'STATE 2 r 3522 3385', 15523 'STATE 3 u 3399 3393', 15524 'STATE 2 c 3393 4718', 15525 'STATE 1 u 3524 3393', 15526 'STATE 2 c 4720 4719', 15527 'STATE 6 p 3385 4721', 15528 'STATE 5 e 3455 3399', 15529 'STATE 3 v 3399 4722', 15530 'STATE 6 o 3393 4723', 15531 'STATE 1 l 3399 4724', 15532 'STATE 3 n 3455 3385', 15533 'STATE 6 e 3455 4725', 15534 'STATE 6 s 3455 4726', 15535 'STATE 2 a 3385 4727', 15536 'STATE 6 y 3455 3385', 15537 'STATE 6 i 3385 4728', 15538 'STATE 1 # 3385 4729', 15539 'STATE 1 k 3455 4730', 15540 'STATE 3 t 3524 3455', 15541 'STATE 1 u 3455 4731', 15542 'STATE 5 k 4733 4732', 15543 'STATE 6 e 3475 3385', 15544 'STATE 6 c 3385 4734', 15545 'STATE 6 i 3385 4735', 15546 'STATE 1 e 3455 4736', 15547 'STATE 5 o 3455 4737', 15548 'STATE 2 h 3522 4738', 15549 'STATE 3 o 3399 4739', 15550 'STATE 1 i 3455 3444', 15551 'STATE 3 l 3393 4740', 15552 'STATE 3 r 3385 4741', 15553 'STATE 4 m 3455 4742', 15554 'STATE 3 t 3455 4743', 15555 'STATE 2 t 3455 4744', 15556 'STATE 6 s 4746 4745', 15557 'STATE 3 t 4747 3385', 15558 'STATE 1 h 3399 4748', 15559 'STATE 3 v 3385 4749', 15560 'STATE 2 o 3455 3385', 15561 'STATE 1 o 3522 4750', 15562 'STATE 3 d 3455 3385', 15563 'STATE 5 a 4297 4751', 15564 'STATE 5 g 3385 4752', 15565 'STATE 5 l 3494 4753', 15566 'STATE 5 i 4755 4754', 15567 'STATE 6 n 3393 3385', 15568 'STATE 5 o 3389 4756', 15569 'STATE 5 u 3385 4757', 15570 'STATE 5 t 4759 4758', 15571 'STATE 6 y 3455 3522', 15572 'STATE 5 o 4761 4760', 15573 'STATE 6 r 4763 4762', 15574 'STATE 4 l 4765 4764', 15575 'STATE 6 r 3455 4766', 15576 'STATE 6 u 3393 4767', 15577 'STATE 4 d 3393 4768', 15578 'STATE 6 c 3455 4769', 15579 'STATE 3 s 3393 4435', 15580 'STATE 4 d 3524 4770', 15581 'STATE 3 v 3522 3385', 15582 'STATE 4 s 3385 4771', 15583 'STATE 6 o 4773 4772', 15584 'STATE 6 a 3494 3522', 15585 'STATE 4 s 4775 4774', 15586 'STATE 6 a 3444 3385', 15587 'STATE 4 s 3455 4776', 15588 'STATE 5 u 3385 3455', 15589 'STATE 5 l 3494 4777', 15590 'STATE 5 l 3385 4778', 15591 'STATE 5 r 4780 4779', 15592 'STATE 6 s 3393 4781', 15593 'STATE 6 b 3444 4782', 15594 'STATE 5 i 4784 4783', 15595 'STATE 6 u 4786 4785', 15596 'STATE 6 e 3455 4787', 15597 'STATE 4 p 4789 4788', 15598 'STATE 2 c 4791 4790', 15599 'STATE 1 e 3385 3393', 15600 'STATE 3 r 3393 4792', 15601 'STATE 3 v 3399 4793', 15602 'STATE 3 b 3385 3389', 15603 'STATE 3 h 3385 4794', 15604 'STATE 4 u 3399 4795', 15605 'STATE 1 # 3385 3455', 15606 'STATE 1 i 3522 4796', 15607 'STATE 1 # 3393 4797', 15608 'STATE 2 f 3455 4798', 15609 'STATE 2 l 3399 4799', 15610 'STATE 2 a 3399 4800', 15611 'STATE 1 e 3455 4801', 15612 'STATE 3 n 3385 3522', 15613 'STATE 2 i 3494 4802', 15614 'STATE 2 u 4803 3455', 15615 'STATE 1 s 4804 3393', 15616 'STATE 1 c 3444 3393', 15617 'STATE 4 t 4806 4805', 15618 'STATE 5 r 3455 4807', 15619 'STATE 5 e 4809 4808', 15620 'STATE 6 i 3385 3455', 15621 'STATE 3 d 3494 3385', 15622 'STATE 1 e 3494 3522', 15623 'STATE 4 t 4811 4810', 15624 'STATE 2 o 3385 4812', 15625 'STATE 4 s 3444 3455', 15626 'STATE 2 e 4813 3399', 15627 'STATE 3 r 3455 3399', 15628 'STATE 2 a 4815 4814', 15629 'STATE 1 n 3399 4816', 15630 'STATE 4 m 3385 4817', 15631 'STATE 4 x 4819 4818', 15632 'STATE 4 c 4821 4820', 15633 'STATE 6 e 3522 4822', 15634 'STATE 5 z 4824 4823', 15635 'STATE 5 a 3385 3399', 15636 'STATE 1 e 3385 4825', 15637 'STATE 3 r 3444 3393', 15638 'STATE 6 t 3399 4826', 15639 'STATE 1 n 3399 3444', 15640 'STATE 2 s 4686 4827', 15641 'STATE 1 # 3385 4828', 15642 'STATE 1 f 3399 4829', 15643 'STATE 6 n 3399 4830', 15644 'STATE 6 n 3455 4831', 15645 'STATE 5 i 3522 4832', 15646 'STATE 2 n 3385 3455', 15647 'STATE 1 a 4833 3385', 15648 'STATE 3 v 4803 3385', 15649 'STATE 2 o 3455 4834', 15650 'STATE 1 o 3455 4835', 15651 'STATE 5 g 4837 4836', 15652 'STATE 1 o 3455 4838', 15653 'STATE 6 e 3393 4839', 15654 'STATE 3 l 3522 3385', 15655 'STATE 1 n 3455 4840', 15656 'STATE 2 a 4701 4841', 15657 'STATE 2 a 4842 3385', 15658 'STATE 1 o 3455 4843', 15659 'STATE 3 r 3393 3444', 15660 'STATE 3 s 3385 4844', 15661 'STATE 4 t 4846 4845', 15662 'STATE 3 p 3385 3455', 15663 'STATE 2 p 3385 4847', 15664 'STATE 1 t 3455 3385', 15665 'STATE 4 t 3455 3385', 15666 'STATE 6 e 3522 3385', 15667 'STATE 6 r 4849 4848', 15668 'STATE 1 a 4851 4850', 15669 'STATE 2 p 3522 4852', 15670 'STATE 4 s 4854 4853', 15671 'STATE 5 l 3385 4855', 15672 'STATE 5 c 3494 3385', 15673 'STATE 6 n 3385 4856', 15674 'STATE 6 l 3393 3385', 15675 'STATE 6 o 3389 4857', 15676 'STATE 5 i 3522 3385', 15677 'STATE 5 d 4859 4858', 15678 'STATE 6 a 3522 4860', 15679 'STATE 5 r 4862 4861', 15680 'STATE 4 g 4274 4863', 15681 'STATE 3 t 4865 4864', 15682 'STATE 3 g 3385 4866', 15683 'STATE 3 p 3385 4867', 15684 'STATE 6 n 3385 4868', 15685 'STATE 4 g 3385 4869', 15686 'STATE 3 b 4871 4870', 15687 'STATE 4 n 3393 3385', 15688 'STATE 3 s 3385 4872', 15689 'STATE 3 m 3385 4873', 15690 'STATE 4 t 3385 3522', 15691 'STATE 6 r 4773 4874', 15692 'STATE 5 t 3494 3385', 15693 'STATE 5 u 4876 4875', 15694 'STATE 5 e 3522 4877', 15695 'STATE 5 a 3455 3385', 15696 'STATE 5 r 3494 4878', 15697 'STATE 5 o 3385 4879', 15698 'STATE 4 d 4881 4880', 15699 'STATE 6 o 4883 4882', 15700 'STATE 4 s 4885 4884', 15701 'STATE 4 d 3455 4886', 15702 'STATE 5 l 3455 4887', 15703 'STATE 6 n 3455 3444', 15704 'STATE 6 v 3494 4888', 15705 'STATE 5 o 3494 3455', 15706 'STATE 6 m 3455 4889', 15707 'STATE 6 c 3455 4890', 15708 'STATE 6 c 3393 3444', 15709 'STATE 2 r 4892 4891', 15710 'STATE 5 t 3444 4893', 15711 'STATE 3 n 3393 4894', 15712 'STATE 3 h 3399 4895', 15713 'STATE 1 # 3385 4896', 15714 'STATE 3 o 3399 4897', 15715 'STATE 3 u 3385 3522', 15716 'STATE 3 n 3444 4898', 15717 'STATE 2 d 3455 3399', 15718 'STATE 1 i 3399 4899', 15719 'STATE 2 d 3524 3399', 15720 'STATE 1 i 3385 4900', 15721 'STATE 2 u 3494 4901', 15722 'STATE 1 r 3455 3385', 15723 'STATE 2 l 3393 3444', 15724 'STATE 4 d 4903 4902', 15725 'STATE 5 e 4905 4904', 15726 'STATE 3 t 4907 4906', 15727 'STATE 4 u 3399 4908', 15728 'STATE 4 v 3494 4909', 15729 'STATE 3 t 4911 4910', 15730 'STATE 5 a 3522 3399', 15731 'STATE 5 o 4913 4912', 15732 'STATE 5 a 3399 3455', 15733 'STATE 6 l 4915 4914', 15734 'STATE 3 t 3455 3399', 15735 'STATE 2 m 3385 4916', 15736 'STATE 3 m 3385 4917', 15737 'STATE 5 e 4919 4918', 15738 'STATE 3 n 3494 4776', 15739 'STATE 3 r 4920 3385', 15740 'STATE 5 e 3455 4921', 15741 'STATE 6 c 3455 4922', 15742 'STATE 4 d 4924 4923', 15743 'STATE 1 # 3385 3522', 15744 'STATE 2 h 3385 4925', 15745 'STATE 5 n 3444 4926', 15746 'STATE 6 h 3385 4927', 15747 'STATE 5 a 4928 3455', 15748 'STATE 6 c 4930 4929', 15749 'STATE 3 d 3385 3399', 15750 'STATE 1 i 3385 4931', 15751 'STATE 1 e 3522 3455', 15752 'STATE 6 a 3385 3455', 15753 'STATE 2 e 3455 4932', 15754 'STATE 1 e 3455 3524', 15755 'STATE 5 u 4934 4933', 15756 'STATE 6 t 3385 4935', 15757 'STATE 6 e 3385 4936', 15758 'STATE 6 a 3393 4937', 15759 'STATE 2 i 3455 4938', 15760 'STATE 5 a 3455 4939', 15761 'STATE 3 m 3385 4686', 15762 'STATE 3 v 3455 3399', 15763 'STATE 3 l 3385 4420', 15764 'STATE 4 d 4930 4343', 15765 'STATE 3 s 3385 3455', 15766 'STATE 1 n 3455 4940', 15767 'STATE 1 c 3522 4941', 15768 'STATE 1 e 3385 4942', 15769 'STATE 1 l 4944 4943', 15770 'STATE 2 c 3385 4945', 15771 'STATE 1 e 3522 4946', 15772 'STATE 4 l 4948 4947', 15773 'STATE 6 a 4950 4949', 15774 'STATE 6 e 3385 4951', 15775 'STATE 5 a 3494 4952', 15776 'STATE 6 s 3385 4953', 15777 'STATE 5 o 3455 4954', 15778 'STATE 6 a 3522 4955', 15779 'STATE 6 h 3522 4956', 15780 'STATE 3 o 3399 4957', 15781 'STATE 4 t 4959 4958', 15782 'STATE 4 c 4961 4960', 15783 'STATE 4 v 4963 4962', 15784 'STATE 4 l 3385 4964', 15785 'STATE 3 p 4966 4965', 15786 'STATE 4 c 3494 4967', 15787 'STATE 3 v 3522 4968', 15788 'STATE 6 n 3385 4969', 15789 'STATE 4 v 3385 4970', 15790 'STATE 6 e 3455 4971', 15791 'STATE 3 l 3522 4972', 15792 'STATE 4 t 3385 3524', 15793 'STATE 5 t 3494 4973', 15794 'STATE 5 a 4975 4974', 15795 'STATE 4 b 3385 3455', 15796 'STATE 6 e 3455 4976', 15797 'STATE 5 a 3494 4977', 15798 'STATE 5 e 3385 4978', 15799 'STATE 4 m 4881 4979', 15800 'STATE 5 i 4980 3385', 15801 'STATE 4 p 4981 3444', 15802 'STATE 4 t 3385 4982', 15803 'STATE 4 b 3444 4983', 15804 'STATE 6 u 3444 4984', 15805 'STATE 6 m 3455 4985', 15806 'STATE 6 r 3455 4986', 15807 'STATE 6 r 3455 4987', 15808 'STATE 4 l 4989 4988', 15809 'STATE 4 c 3444 4990', 15810 'STATE 2 l 3399 4991', 15811 'STATE 5 l 3393 3444', 15812 'STATE 1 a 3399 4992', 15813 'STATE 6 # 3399 3393', 15814 'STATE 3 g 3399 4993', 15815 'STATE 6 c 3399 3385', 15816 'STATE 3 u 3399 4994', 15817 'STATE 2 r 3393 4995', 15818 'STATE 2 n 3399 4996', 15819 'STATE 2 m 3455 4997', 15820 'STATE 1 r 3494 4998', 15821 'STATE 5 c 3385 4999', 15822 'STATE 5 g 5001 5000', 15823 'STATE 6 r 3455 5002', 15824 'STATE 3 m 3455 5003', 15825 'STATE 4 b 4274 5004', 15826 'STATE 5 p 3385 5005', 15827 'STATE 3 n 5007 5006', 15828 'STATE 6 r 3444 5008', 15829 'STATE 2 e 3455 5009', 15830 'STATE 5 a 3522 3455', 15831 'STATE 5 h 3455 3399', 15832 'STATE 1 c 3385 3455', 15833 'STATE 4 f 5011 5010', 15834 'STATE 2 e 3385 4274', 15835 'STATE 3 p 3393 5012', 15836 'STATE 3 d 3385 5013', 15837 'STATE 2 a 5015 5014', 15838 'STATE 4 s 3399 5016', 15839 'STATE 6 r 5018 5017', 15840 'STATE 6 n 3393 5019', 15841 'STATE 4 s 3455 5020', 15842 'STATE 4 j 3524 5021', 15843 'STATE 5 i 3385 5022', 15844 'STATE 3 n 3385 5023', 15845 'STATE 1 g 3399 3444', 15846 'STATE 6 d 3455 5024', 15847 'STATE 2 o 3399 3455', 15848 'STATE 1 # 5026 5025', 15849 'STATE 3 r 3455 3385', 15850 'STATE 1 e 3385 5027', 15851 'STATE 1 r 3455 5028', 15852 'STATE 5 o 3455 5029', 15853 'STATE 3 t 3385 4727', 15854 'STATE 1 e 3494 5030', 15855 'STATE 2 o 3385 5027', 15856 'STATE 2 u 3455 5031', 15857 'STATE 1 i 3455 3385', 15858 'STATE 2 u 3522 5032', 15859 'STATE 2 g 3385 5033', 15860 'STATE 2 l 3399 5034', 15861 'STATE 2 c 3455 5035', 15862 'STATE 2 m 3522 5036', 15863 'STATE 3 m 3385 3522', 15864 'STATE 6 i 4579 5037', 15865 'STATE 3 h 3522 5038', 15866 'STATE 5 f 5037 5039', 15867 'STATE 5 i 5041 5040', 15868 'STATE 5 c 5043 5042', 15869 'STATE 5 t 3455 5044', 15870 'STATE 5 e 3385 3393', 15871 'STATE 6 l 3494 3385', 15872 'STATE 6 g 3385 5045', 15873 'STATE 5 a 3522 5046', 15874 'STATE 6 o 3522 3385', 15875 'STATE 6 i 3522 5047', 15876 'STATE 6 a 5049 5048', 15877 'STATE 4 h 5051 5050', 15878 'STATE 3 b 3455 5052', 15879 'STATE 3 h 5054 5053', 15880 'STATE 6 m 3494 3385', 15881 'STATE 4 g 5056 5055', 15882 'STATE 6 n 3385 5057', 15883 'STATE 4 n 3385 3455', 15884 'STATE 4 d 3385 5058', 15885 'STATE 4 t 3393 3385', 15886 'STATE 6 l 5060 5059', 15887 'STATE 6 g 3455 5061', 15888 'STATE 6 m 3385 5062', 15889 'STATE 4 t 5064 5063', 15890 'STATE 6 n 3385 5065', 15891 'STATE 6 s 3455 5066', 15892 'STATE 6 h 3494 5067', 15893 'STATE 5 e 5069 5068', 15894 'STATE 6 t 3455 5070', 15895 'STATE 5 i 5071 4776', 15896 'STATE 6 n 3444 3385', 15897 'STATE 5 b 3522 3385', 15898 'STATE 5 i 5073 5072', 15899 'STATE 6 s 3444 3385', 15900 'STATE 6 e 3385 3444', 15901 'STATE 4 p 3444 3385', 15902 'STATE 4 p 3455 5074', 15903 'STATE 6 l 3444 3455', 15904 'STATE 6 i 3444 5075', 15905 'STATE 5 u 3455 3385', 15906 'STATE 6 i 5076 3385', 15907 'STATE 4 m 3385 5077', 15908 'STATE 6 n 3455 3385', 15909 'STATE 6 t 3393 3444', 15910 'STATE 3 n 3399 5078', 15911 'STATE 6 s 3385 3393', 15912 'STATE 3 b 3399 5079', 15913 'STATE 4 c 5081 5080', 15914 'STATE 1 n 3444 5082', 15915 'STATE 2 a 5083 3399', 15916 'STATE 2 a 3385 5084', 15917 'STATE 3 b 3494 3522', 15918 'STATE 6 t 5086 5085', 15919 'STATE 6 y 3455 5087', 15920 'STATE 1 o 3494 3385', 15921 'STATE 3 k 3455 5088', 15922 'STATE 3 k 3455 5089', 15923 'STATE 3 d 5091 5090', 15924 'STATE 1 o 3522 3455', 15925 'STATE 1 r 5093 5092', 15926 'STATE 6 t 3494 5094', 15927 'STATE 6 d 3393 3455', 15928 'STATE 4 s 5096 5095', 15929 'STATE 3 s 3385 5097', 15930 'STATE 2 e 3455 5098', 15931 'STATE 3 c 3393 3455', 15932 'STATE 3 l 3455 3393', 15933 'STATE 2 i 5100 5099', 15934 'STATE 5 o 3399 5101', 15935 'STATE 6 s 3393 5102', 15936 'STATE 6 n 5104 5103', 15937 'STATE 4 p 3444 5105', 15938 'STATE 6 u 3494 3444', 15939 'STATE 4 c 3455 5106', 15940 'STATE 5 a 5108 5107', 15941 'STATE 5 o 3524 5109', 15942 'STATE 2 c 3385 3494', 15943 'STATE 5 e 5111 5110', 15944 'STATE 6 n 5113 5112', 15945 'STATE 3 m 3522 5114', 15946 'STATE 6 o 3385 3455', 15947 'STATE 3 s 3455 5115', 15948 'STATE 3 u 3399 5116', 15949 'STATE 6 e 3455 5117', 15950 'STATE 2 l 3455 5118', 15951 'STATE 5 h 3455 3385', 15952 'STATE 2 d 3385 3455', 15953 'STATE 2 q 3385 5119', 15954 'STATE 2 e 3455 3399', 15955 'STATE 2 a 5121 5120', 15956 'STATE 6 e 3455 3385', 15957 'STATE 1 u 3455 5122', 15958 'STATE 6 l 3385 5123', 15959 'STATE 5 u 3455 5124', 15960 'STATE 6 a 3455 5125', 15961 'STATE 6 o 3385 5126', 15962 'STATE 6 h 3385 5127', 15963 'STATE 5 c 3385 5128', 15964 'STATE 5 m 3385 5129', 15965 'STATE 6 o 5131 5130', 15966 'STATE 6 r 3522 4955', 15967 'STATE 4 n 5133 5132', 15968 'STATE 3 s 5134 3385', 15969 'STATE 4 d 5136 5135', 15970 'STATE 6 a 3524 3385', 15971 'STATE 6 o 3385 5137', 15972 'STATE 6 s 5139 5138', 15973 'STATE 6 r 3385 5140', 15974 'STATE 6 o 3393 5141', 15975 'STATE 3 b 3494 3385', 15976 'STATE 6 l 3385 5142', 15977 'STATE 3 f 3393 5143', 15978 'STATE 4 p 3385 5144', 15979 'STATE 4 g 3393 5145', 15980 'STATE 3 b 3455 4045', 15981 'STATE 6 c 3385 5146', 15982 'STATE 4 g 5064 5147', 15983 'STATE 6 t 3455 3385', 15984 'STATE 6 s 3385 5148', 15985 'STATE 6 d 3455 3385', 15986 'STATE 5 c 3494 5149', 15987 'STATE 5 o 5151 5150', 15988 'STATE 4 t 3455 5152', 15989 'STATE 4 t 3455 5153', 15990 'STATE 6 g 3455 3385', 15991 'STATE 4 s 5155 5154', 15992 'STATE 4 s 5157 5156', 15993 'STATE 4 m 3455 5158', 15994 'STATE 4 p 5160 5159', 15995 'STATE 5 t 3385 3494', 15996 'STATE 6 p 3393 5161', 15997 'STATE 1 r 3393 5162', 15998 'STATE 3 f 3399 5163', 15999 'STATE 2 r 3385 5164', 16000 'STATE 2 a 3494 4824', 16001 'STATE 2 o 3444 5165', 16002 'STATE 3 l 5166 3399', 16003 'STATE 2 i 3963 5167', 16004 'STATE 4 g 5169 5168', 16005 'STATE 5 h 5171 5170', 16006 'STATE 1 s 3385 5172', 16007 'STATE 6 e 5174 5173', 16008 'STATE 2 p 5176 5175', 16009 'STATE 1 u 5178 5177', 16010 'STATE 1 a 3455 4701', 16011 'STATE 3 g 3455 5179', 16012 'STATE 4 m 3385 5180', 16013 'STATE 5 r 3455 4776', 16014 'STATE 4 b 3399 5181', 16015 'STATE 3 l 3399 3455', 16016 'STATE 3 r 5183 5182', 16017 'STATE 6 n 3399 5096', 16018 'STATE 4 q 5185 5184', 16019 'STATE 3 n 5186 5113', 16020 'STATE 3 r 3522 5187', 16021 'STATE 6 r 5189 5188', 16022 'STATE 4 p 5191 5190', 16023 'STATE 4 s 3385 3444', 16024 'STATE 4 f 3385 5192', 16025 'STATE 4 d 3393 4992', 16026 'STATE 5 o 5194 5193', 16027 'STATE 4 m 5196 5195', 16028 'STATE 3 r 3385 5197', 16029 'STATE 5 o 3455 5198', 16030 'STATE 3 c 3385 5199', 16031 'STATE 2 a 3455 3579', 16032 'STATE 3 c 3399 3455', 16033 'STATE 3 r 3455 5200', 16034 'STATE 2 n 3455 5201', 16035 'STATE 5 h 3455 5202', 16036 'STATE 3 s 3455 5203', 16037 'STATE 6 t 3385 5204', 16038 'STATE 3 t 3385 5205', 16039 'STATE 6 a 5207 5206', 16040 'STATE 6 i 5209 5208', 16041 'STATE 1 r 3455 3522', 16042 'STATE 5 h 3385 5210', 16043 'STATE 5 o 3455 5211', 16044 'STATE 6 m 3455 5212', 16045 'STATE 5 s 3385 5213', 16046 'STATE 6 o 3385 3522', 16047 'STATE 5 p 3522 3385', 16048 'STATE 5 i 5215 5214', 16049 'STATE 5 l 5217 5216', 16050 'STATE 5 f 3522 5218', 16051 'STATE 6 u 5219 3385', 16052 'STATE 3 m 5221 5220', 16053 'STATE 5 s 3522 3385', 16054 'STATE 4 n 3385 5222', 16055 'STATE 3 p 4545 4701', 16056 'STATE 6 u 3522 3385', 16057 'STATE 6 l 3385 5223', 16058 'STATE 4 l 3522 3393', 16059 'STATE 6 t 3385 3393', 16060 'STATE 3 b 5225 5224', 16061 'STATE 3 l 3385 3494', 16062 'STATE 4 v 3385 5226', 16063 'STATE 6 v 5228 5227', 16064 'STATE 4 f 3455 5229', 16065 'STATE 6 p 3385 5230', 16066 'STATE 3 v 3385 5231', 16067 'STATE 6 t 3455 5232', 16068 'STATE 6 n 3494 3385', 16069 'STATE 4 n 3385 5233', 16070 'STATE 4 n 3455 5234', 16071 'STATE 4 n 3389 4876', 16072 'STATE 4 b 3455 3385', 16073 'STATE 4 o 3444 5235', 16074 'STATE 6 o 3455 5236', 16075 'STATE 4 w 3444 5237', 16076 'STATE 6 s 3455 5238', 16077 'STATE 4 d 3455 3444', 16078 'STATE 4 s 4090 3455', 16079 'STATE 6 t 3385 3444', 16080 'STATE 6 s 3393 5239', 16081 'STATE 2 i 3399 5240', 16082 'STATE 5 n 3385 3399', 16083 'STATE 2 p 3385 5241', 16084 'STATE 3 h 3393 3444', 16085 'STATE 1 r 3522 3399', 16086 'STATE 3 d 3385 5242', 16087 'STATE 4 v 5244 5243', 16088 'STATE 5 a 5246 5245', 16089 'STATE 3 s 5248 5247', 16090 'STATE 2 b 3494 5249', 16091 'STATE 6 w 3399 5250', 16092 'STATE 1 e 5252 5251', 16093 'STATE 5 h 3385 5253', 16094 'STATE 6 r 5255 5254', 16095 'STATE 3 l 3393 3455', 16096 'STATE 4 f 3399 5256', 16097 'STATE 6 r 3455 5257', 16098 'STATE 1 v 3494 5258', 16099 'STATE 5 o 3385 3455', 16100 'STATE 4 h 3399 5259', 16101 'STATE 6 n 5261 5260', 16102 'STATE 2 t 3385 4727', 16103 'STATE 5 a 5263 5262', 16104 'STATE 2 f 3393 3494', 16105 'STATE 4 f 3455 3385', 16106 'STATE 3 l 4545 5264', 16107 'STATE 4 v 5266 5265', 16108 'STATE 2 f 3385 5267', 16109 'STATE 6 d 5269 5268', 16110 'STATE 5 a 3444 3385', 16111 'STATE 4 s 3455 3444', 16112 'STATE 5 i 3385 5270', 16113 'STATE 3 r 3385 5271', 16114 'STATE 4 b 3393 5272', 16115 'STATE 3 n 3455 5273', 16116 'STATE 2 a 3524 5271', 16117 'STATE 5 k 3385 5274', 16118 'STATE 2 r 3385 5275', 16119 'STATE 6 n 5276 3399', 16120 'STATE 2 p 3455 5277', 16121 'STATE 2 o 3455 5278', 16122 'STATE 6 a 3524 3455', 16123 'STATE 6 s 3385 3455', 16124 'STATE 3 d 3455 5279', 16125 'STATE 2 o 5280 3385', 16126 'STATE 3 t 3455 5281', 16127 'STATE 3 m 3385 5282', 16128 'STATE 1 v 3455 3522', 16129 'STATE 4 d 3385 5283', 16130 'STATE 5 l 3385 5284', 16131 'STATE 6 z 3389 5285', 16132 'STATE 5 t 3385 5286', 16133 'STATE 6 t 3385 5287', 16134 'STATE 6 n 3385 3522', 16135 'STATE 5 r 3522 5288', 16136 'STATE 6 a 3455 3522', 16137 'STATE 5 j 3522 5289', 16138 'STATE 3 s 3494 3385', 16139 'STATE 3 z 3385 5290', 16140 'STATE 6 e 3385 5291', 16141 'STATE 3 b 3455 5292', 16142 'STATE 4 m 5294 5293', 16143 'STATE 4 h 3393 5295', 16144 'STATE 4 n 3385 5296', 16145 'STATE 4 m 3385 5297', 16146 'STATE 4 m 5299 5298', 16147 'STATE 4 h 3455 4545', 16148 'STATE 4 v 4545 3455', 16149 'STATE 4 t 5301 5300', 16150 'STATE 6 l 3522 5302', 16151 'STATE 4 n 3455 3385', 16152 'STATE 4 d 3385 5303', 16153 'STATE 6 n 5304 4746', 16154 'STATE 5 l 5306 5305', 16155 'STATE 6 i 5308 5307', 16156 'STATE 4 t 5310 5309', 16157 'STATE 6 g 3385 3455', 16158 'STATE 6 n 5311 3444', 16159 'STATE 1 o 3399 5312', 16160 'STATE 1 n 5314 5313', 16161 'STATE 1 a 3455 5315', 16162 'STATE 4 m 5317 5316', 16163 'STATE 5 a 4545 5318', 16164 'STATE 3 r 5320 5319', 16165 'STATE 6 l 3393 3494', 16166 'STATE 2 g 3455 5321', 16167 'STATE 1 e 3455 3494', 16168 'STATE 2 k 3494 3385', 16169 'STATE 6 s 3393 5322', 16170 'STATE 5 c 3385 5323', 16171 'STATE 5 r 3455 3385', 16172 'STATE 3 t 3522 3399', 16173 'STATE 6 d 3455 3399', 16174 'STATE 2 a 3455 3399', 16175 'STATE 5 u 3455 5324', 16176 'STATE 4 c 3385 3444', 16177 'STATE 4 g 5326 5325', 16178 'STATE 2 c 3455 5327', 16179 'STATE 4 s 5329 5328', 16180 'STATE 4 t 3455 5330', 16181 'STATE 2 o 5332 5331', 16182 'STATE 3 a 3399 5333', 16183 'STATE 3 n 3455 5334', 16184 'STATE 4 d 4648 3385', 16185 'STATE 6 n 5335 3393', 16186 'STATE 4 v 3385 5336', 16187 'STATE 5 e 3393 5337', 16188 'STATE 4 j 3385 3444', 16189 'STATE 5 r 3385 5338', 16190 'STATE 1 # 3393 3524', 16191 'STATE 1 a 3385 5339', 16192 'STATE 3 d 3385 3393', 16193 'STATE 6 a 3455 5340', 16194 'STATE 2 c 3455 5341', 16195 'STATE 2 e 3455 3385', 16196 'STATE 1 t 3455 5342', 16197 'STATE 1 h 3455 5343', 16198 'STATE 2 e 4745 3385', 16199 'STATE 1 p 3385 5344', 16200 'STATE 2 u 3385 5345', 16201 'STATE 1 p 3455 3385', 16202 'STATE 5 i 5347 5346', 16203 'STATE 5 e 3385 5348', 16204 'STATE 6 s 3455 3385', 16205 'STATE 6 i 5128 3385', 16206 'STATE 6 h 3385 5349', 16207 'STATE 5 h 3522 5350', 16208 'STATE 5 r 3522 3385', 16209 'STATE 5 d 4662 3385', 16210 'STATE 5 s 3385 5351', 16211 'STATE 4 l 3385 5352', 16212 'STATE 4 l 5354 5353', 16213 'STATE 6 n 3385 5334', 16214 'STATE 6 d 4545 5355', 16215 'STATE 6 a 3455 5356', 16216 'STATE 4 t 5357 3385', 16217 'STATE 4 d 5359 5358', 16218 'STATE 6 n 3393 5360', 16219 'STATE 6 l 3385 5232', 16220 'STATE 6 l 3385 3455', 16221 'STATE 3 s 3385 5361', 16222 'STATE 6 a 3455 5362', 16223 'STATE 4 t 3385 3455', 16224 'STATE 5 y 3444 3385', 16225 'STATE 6 i 3385 3444', 16226 'STATE 5 p 3455 5363', 16227 'STATE 5 c 3455 3385', 16228 'STATE 4 l 3455 3444', 16229 'STATE 6 r 3455 3385', 16230 'STATE 4 g 3444 3385', 16231 'STATE 1 # 5365 5364', 16232 'STATE 1 # 5367 5366', 16233 'STATE 4 x 3385 3455', 16234 'STATE 1 o 4727 3385', 16235 'STATE 4 x 3385 5368', 16236 'STATE 5 a 5370 5369', 16237 'STATE 3 s 3455 5371', 16238 'STATE 5 o 5373 5372', 16239 'STATE 2 g 3522 3385', 16240 'STATE 1 t 3399 5374', 16241 'STATE 5 r 5376 5375', 16242 'STATE 5 r 5378 5377', 16243 'STATE 3 n 3455 5379', 16244 'STATE 4 s 3385 5380', 16245 'STATE 1 d 3385 3455', 16246 'STATE 4 d 3455 5381', 16247 'STATE 2 l 3399 5382', 16248 'STATE 1 a 3393 3455', 16249 'STATE 3 h 3455 5383', 16250 'STATE 5 u 5385 5384', 16251 'STATE 6 n 3455 5386', 16252 'STATE 2 e 3455 5387', 16253 'STATE 3 m 3385 3455', 16254 'STATE 3 l 3385 3393', 16255 'STATE 3 a 3385 5388', 16256 'STATE 6 a 3385 5389', 16257 'STATE 1 # 3385 5390', 16258 'STATE 4 t 5392 5391', 16259 'STATE 5 a 4686 5393', 16260 'STATE 3 t 3399 5394', 16261 'STATE 3 m 3455 5395', 16262 'STATE 1 c 3455 5396', 16263 'STATE 6 i 3522 3385', 16264 'STATE 3 s 3455 3385', 16265 'STATE 4 t 3385 5397', 16266 'STATE 6 t 3385 5398', 16267 'STATE 5 y 3385 5399', 16268 'STATE 6 e 3385 5128', 16269 'STATE 6 u 3522 5400', 16270 'STATE 6 i 3385 5401', 16271 'STATE 4 c 3944 5402', 16272 'STATE 6 n 4964 5403', 16273 'STATE 3 b 3455 5404', 16274 'STATE 4 l 5406 5405', 16275 'STATE 4 d 3455 3385', 16276 'STATE 3 h 3385 5407', 16277 'STATE 4 b 5345 5408', 16278 'STATE 3 s 3455 3393', 16279 'STATE 3 l 3455 3385', 16280 'STATE 3 h 3385 5409', 16281 'STATE 6 e 3385 5410', 16282 'STATE 6 r 3444 5411', 16283 'STATE 2 u 3444 5412', 16284 'STATE 3 l 5414 5413', 16285 'STATE 2 s 3494 5415', 16286 'STATE 3 r 3385 5416', 16287 'STATE 4 q 5418 5417', 16288 'STATE 5 e 5420 5419', 16289 'STATE 6 k 3399 5421', 16290 'STATE 3 r 5423 5422', 16291 'STATE 3 l 5425 5424', 16292 'STATE 6 r 3455 5426', 16293 'STATE 2 o 3399 5427', 16294 'STATE 3 c 3393 5428', 16295 'STATE 2 a 3393 3385', 16296 'STATE 2 o 3399 5429', 16297 'STATE 6 i 5334 5430', 16298 'STATE 6 e 3399 5431', 16299 'STATE 1 l 3524 5432', 16300 'STATE 4 p 3399 5433', 16301 'STATE 1 o 3385 5434', 16302 'STATE 4 s 3522 5435', 16303 'STATE 5 i 5437 5436', 16304 'STATE 4 c 5276 4416', 16305 'STATE 5 i 3393 3524', 16306 'STATE 3 r 5439 5438', 16307 'STATE 4 g 3393 5440', 16308 'STATE 6 e 3385 5441', 16309 'STATE 1 c 3385 5442', 16310 'STATE 3 r 3393 5443', 16311 'STATE 1 # 3393 3385', 16312 'STATE 3 c 3455 5444', 16313 'STATE 3 d 3455 5445', 16314 'STATE 3 h 3455 5446', 16315 'STATE 3 d 3455 5447', 16316 'STATE 5 o 3385 5448', 16317 'STATE 6 s 3389 3385', 16318 'STATE 5 v 3385 5449', 16319 'STATE 5 v 3522 5450', 16320 'STATE 5 d 3522 3385', 16321 'STATE 6 e 3385 5451', 16322 'STATE 3 g 3385 5452', 16323 'STATE 6 d 3385 5453', 16324 'STATE 6 z 3385 5454', 16325 'STATE 6 c 3455 5455', 16326 'STATE 3 v 3385 3393', 16327 'STATE 6 s 3393 5456', 16328 'STATE 4 l 5458 5457', 16329 'STATE 4 b 5460 5459', 16330 'STATE 6 a 3444 5461', 16331 'STATE 5 t 4697 5462', 16332 'STATE 2 g 3399 3393', 16333 'STATE 6 o 3399 3393', 16334 'STATE 3 w 3385 5463', 16335 'STATE 2 a 3522 3385', 16336 'STATE 1 i 5465 5464', 16337 'STATE 1 a 3494 5466', 16338 'STATE 5 b 5468 5467', 16339 'STATE 3 r 3393 5469', 16340 'STATE 1 a 3455 5470', 16341 'STATE 6 r 3385 4042', 16342 'STATE 1 i 3385 3522', 16343 'STATE 3 u 3399 5471', 16344 'STATE 5 r 3522 5472', 16345 'STATE 2 a 3399 3455', 16346 'STATE 2 t 5474 5473', 16347 'STATE 3 p 3393 5475', 16348 'STATE 1 r 3455 5476', 16349 'STATE 6 y 3455 3399', 16350 'STATE 1 o 3385 5477', 16351 'STATE 3 s 3455 5478', 16352 'STATE 2 o 3494 3455', 16353 'STATE 4 x 3385 5479', 16354 'STATE 2 n 3494 3385', 16355 'STATE 5 o 5481 5480', 16356 'STATE 6 e 5483 5482', 16357 'STATE 4 h 3385 5484', 16358 'STATE 2 c 3393 3385', 16359 'STATE 3 r 3393 3399', 16360 'STATE 4 s 3385 5485', 16361 'STATE 1 s 3385 3522', 16362 'STATE 2 a 3385 4499', 16363 'STATE 3 k 3455 5486', 16364 'STATE 6 r 3455 3647', 16365 'STATE 3 z 3455 5487', 16366 'STATE 3 h 3455 5488', 16367 'STATE 5 l 3385 5489', 16368 'STATE 6 r 5491 5490', 16369 'STATE 6 i 3385 5134', 16370 'STATE 3 n 3393 3385', 16371 'STATE 6 p 3385 5492', 16372 'STATE 6 n 4311 3385', 16373 'STATE 3 w 3385 5493', 16374 'STATE 3 m 3455 5494', 16375 'STATE 6 r 5496 5495', 16376 'STATE 6 e 3393 5497', 16377 'STATE 3 f 3455 5498', 16378 'STATE 4 t 3385 3444', 16379 'STATE 5 i 3455 3385', 16380 'STATE 6 h 3444 3385', 16381 'STATE 3 l 3393 5499', 16382 'STATE 1 a 5501 5500', 16383 'STATE 4 j 3399 5502', 16384 'STATE 3 r 5504 5503', 16385 'STATE 6 e 3393 3455', 16386 'STATE 5 u 3455 5505', 16387 'STATE 2 s 3385 4833', 16388 'STATE 3 h 3393 5506', 16389 'STATE 6 r 5426 3455', 16390 'STATE 6 e 3494 5507', 16391 'STATE 2 l 3455 3385', 16392 'STATE 4 m 3455 5508', 16393 'STATE 3 h 3455 3385', 16394 'STATE 5 n 3455 5509', 16395 'STATE 6 a 3455 5510', 16396 'STATE 1 e 3385 5511', 16397 'STATE 4 c 3385 5512', 16398 'STATE 2 p 3455 5513', 16399 'STATE 2 u 3455 5514', 16400 'STATE 3 r 3385 5515', 16401 'STATE 3 h 5516 3385', 16402 'STATE 2 c 3385 3393', 16403 'STATE 3 l 3385 5517', 16404 'STATE 5 a 3452 3385', 16405 'STATE 5 v 3385 5518', 16406 'STATE 1 u 3455 5519', 16407 'STATE 3 p 3385 5520', 16408 'STATE 4 h 3385 5521', 16409 'STATE 6 o 3385 5522', 16410 'STATE 5 d 3385 3522', 16411 'STATE 6 y 3385 5523', 16412 'STATE 6 s 5525 5524', 16413 'STATE 6 b 3385 5526', 16414 'STATE 3 l 3385 5527', 16415 'STATE 4 g 3522 3385', 16416 'STATE 3 m 3385 5528', 16417 'STATE 6 n 3455 5529', 16418 'STATE 6 # 5530 3393', 16419 'STATE 2 t 3385 5531', 16420 'STATE 4 v 3522 3385', 16421 'STATE 1 e 5533 5532', 16422 'STATE 4 b 3455 5534', 16423 'STATE 4 p 5535 3455', 16424 'STATE 3 m 3385 5536', 16425 'STATE 6 r 3399 3455', 16426 'STATE 5 r 3399 5537', 16427 'STATE 4 g 3455 3399', 16428 'STATE 5 a 3455 5538', 16429 'STATE 5 o 3399 5539', 16430 'STATE 3 c 5540 3385', 16431 'STATE 1 h 3399 5304', 16432 'STATE 3 l 5035 5541', 16433 'STATE 6 a 3385 5542', 16434 'STATE 4 m 3455 3385', 16435 'STATE 4 m 3385 3393', 16436 'STATE 4 f 3385 5543', 16437 'STATE 6 i 3385 5544', 16438 'STATE 3 n 4913 5545', 16439 'STATE 5 f 3455 5546', 16440 'STATE 5 p 3385 5547', 16441 'STATE 5 g 3522 3385', 16442 'STATE 4 s 3385 5548', 16443 'STATE 6 a 3455 5549', 16444 'STATE 4 c 3455 5356', 16445 'STATE 3 c 3522 4989', 16446 'STATE 6 d 3455 5550', 16447 'STATE 4 p 3522 5551', 16448 'STATE 3 m 3522 3385', 16449 'STATE 3 r 3444 5552', 16450 'STATE 4 x 5554 5553', 16451 'STATE 5 q 3385 5555', 16452 'STATE 2 r 4279 5556', 16453 'STATE 2 d 3399 5557', 16454 'STATE 5 r 3385 3455', 16455 'STATE 5 o 3399 3385', 16456 'STATE 5 u 3399 5558', 16457 'STATE 2 a 3399 5559', 16458 'STATE 2 i 3399 5560', 16459 'STATE 6 o 3385 3399', 16460 'STATE 2 s 3455 5561', 16461 'STATE 4 s 5562 3385', 16462 'STATE 3 h 3385 5563', 16463 'STATE 1 i 3455 5564', 16464 'STATE 2 t 3385 5565', 16465 'STATE 6 n 3455 5566', 16466 'STATE 4 b 3385 5567', 16467 'STATE 4 d 5310 5568', 16468 'STATE 4 b 3385 5569', 16469 'STATE 6 c 3455 5570', 16470 'STATE 3 g 3385 5571', 16471 'STATE 1 a 3444 3393', 16472 'STATE 4 v 4359 3455', 16473 'STATE 2 i 3522 5572', 16474 'STATE 2 h 5574 5573', 16475 'STATE 2 f 3385 5575', 16476 'STATE 4 h 3455 5576', 16477 'STATE 6 r 3399 3385', 16478 'STATE 3 l 3455 5577', 16479 'STATE 5 h 3399 3385', 16480 'STATE 2 g 3455 5578', 16481 'STATE 2 c 5579 3385', 16482 'STATE 4 p 3455 3385', 16483 'STATE 2 e 3455 5580', 16484 'STATE 3 r 3455 5581', 16485 'STATE 3 k 3455 5582', 16486 'STATE 5 s 3385 5583', 16487 'STATE 3 l 3385 4424', 16488 'STATE 3 g 5064 5584', 16489 'STATE 4 g 3385 5585', 16490 'STATE 4 d 3385 5586', 16491 'STATE 2 u 3455 5587', 16492 'STATE 3 h 5589 5588', 16493 'STATE 3 o 3399 5590', 16494 'STATE 2 m 3385 3399', 16495 'STATE 6 s 3399 3455', 16496 'STATE 5 e 4090 3455', 16497 'STATE 2 e 3455 5591', 16498 'STATE 5 c 3522 3385', 16499 'STATE 2 o 3385 3455', 16500 'STATE 1 o 3455 5592', 16501 'STATE 2 r 3455 5593', 16502 'STATE 5 e 3393 3385', 16503 'STATE 4 f 3455 5594', 16504 'STATE 4 t 3385 5595', 16505 'STATE 3 f 3385 5596', 16506 'STATE 2 a 3385 5597', 16507 'STATE 4 c 5599 5598', 16508 'STATE 4 u 3399 4523', 16509 'STATE 3 a 3399 3385', 16510 'STATE 2 n 3455 3385', 16511 'STATE 1 e 3455 5600', 16512 'STATE 2 u 3455 4701', 16513 'STATE 3 c 3455 5601', 16514 'STATE 3 t 3385 5602', 16515 'STATE 6 n 5603 3385', 16516 'STATE 2 o 3522 5276', 16517 'STATE 5 h 5605 5604', 16518 'STATE 6 l 3455 5606', 16519 'STATE 3 k 3455 3385', 16520 'STATE 4 m 3385 5037', 16521 'STATE 3 s 3385 5607', 16522 'STATE 4 n 3987 3393', 16523 'STATE 3 d 5609 5608', 16524 'STATE 1 j 3455 5610', 16525 'STATE 5 e 3494 5611', 16526 'STATE 4 v 3385 5612', 16527 'STATE 4 h 3399 5613', 16528 'STATE 2 i 3399 5614', 16529 'STATE 3 r 3399 5615', 16530 'STATE 6 e 5616 4912', 16531 'STATE 4 n 3385 5617', 16532 'STATE 6 s 3399 5618', 16533 'STATE 1 r 3455 5619', 16534 'STATE 6 o 3399 5620', 16535 'STATE 5 h 3385 3494', 16536 'STATE 3 b 3385 3522', 16537 'STATE 5 n 3399 5621', 16538 'STATE 4 b 3399 3455', 16539 'STATE 2 a 3385 5622', 16540 'STATE 5 u 3399 5623', 16541 'STATE 6 i 3399 3494', 16542 'STATE 1 f 3399 5624', 16543 'STATE 3 r 5626 5625', 16544 'STATE 2 i 5628 5627', 16545 'STATE 2 t 3455 5629', 16546 'STATE 4 p 5631 5630', 16547 'STATE 5 o 3399 5632', 16548 'STATE 2 r 3455 5633', 16549 'STATE 3 g 3455 5634', 16550 'STATE 5 p 3385 3399', 16551 'STATE 6 r 3399 5635', 16552 'STATE 6 r 3455 3399', 16553 'STATE 3 a 3399 5636', 16554 'STATE 5 e 3455 5637', 16555 'STATE 1 a 5639 5638', 16556 'STATE 3 n 5640 3399', 16557 'STATE 6 a 3399 5641', 16558 'STATE 4 b 3455 3399', 16559 'STATE 4 s 3399 3455', 16560 'STATE 4 f 3399 5642', 16561 'STATE 3 l 3399 5643', 16562 'STATE 1 n 3399 5644', 16563 'STATE 5 e 5645 3399', 16564 'STATE 6 r 3399 5646', 16565 'STATE 4 k 3399 3455', 16566 'INDEX 5647 f', 16567 'STATE 4 f 5649 5648', 16568 'PHONE f', 16569 'PHONE epsilon', 16570 'INDEX 5650 g', 16571 'STATE 3 n 5652 5651', 16572 'STATE 4 h 5654 5653', 16573 'STATE 4 # 5656 5655', 16574 'STATE 4 g 5658 5657', 16575 'STATE 5 t 5656 5659', 16576 'STATE 4 s 5656 5660', 16577 'PHONE epsilon', 16578 'STATE 4 e 5662 5661', 16579 'STATE 2 s 5664 5663', 16580 'STATE 3 u 5666 5665', 16581 'STATE 4 e 5668 5667', 16582 'STATE 4 i 5670 5669', 16583 'STATE 5 r 5672 5671', 16584 'STATE 1 # 5656 5673', 16585 'STATE 6 s 5674 5656', 16586 'STATE 3 i 5676 5675', 16587 'STATE 5 # 5656 5677', 16588 'STATE 4 i 5679 5678', 16589 'STATE 6 # 5681 5680', 16590 'STATE 4 y 5683 5682', 16591 'STATE 2 l 5685 5684', 16592 'STATE 3 d 5687 5686', 16593 'STATE 6 # 5689 5688', 16594 'STATE 5 l 5691 5690', 16595 'PHONE g', 16596 'STATE 1 0 5674 5692', 16597 'STATE 5 a 5674 5693', 16598 'STATE 1 t 5695 5694', 16599 'STATE 4 t 5697 5696', 16600 'STATE 6 g 5699 5698', 16601 'STATE 5 # 5687 5700', 16602 'STATE 5 l 5674 5701', 16603 'STATE 4 n 5703 5702', 16604 'STATE 3 g 5674 5704', 16605 'STATE 5 a 5687 5705', 16606 'STATE 5 n 5706 5687', 16607 'STATE 3 g 5708 5707', 16608 'PHONE jh', 16609 'STATE 6 a 5687 5709', 16610 'STATE 3 d 5687 5710', 16611 'STATE 2 b 5674 5656', 16612 'STATE 1 t 5674 5656', 16613 'STATE 1 b 5674 5711', 16614 'STATE 5 e 5674 5656', 16615 'STATE 1 l 5713 5712', 16616 'PHONE f', 16617 'STATE 4 y 5687 5714', 16618 'STATE 2 e 5715 5656', 16619 'STATE 5 l 5674 5716', 16620 'STATE 2 i 5656 5717', 16621 'STATE 5 r 5719 5718', 16622 'STATE 5 s 5687 5720', 16623 'STATE 3 d 5722 5721', 16624 'STATE 5 # 5656 5723', 16625 'STATE 2 l 5687 5724', 16626 'STATE 2 0 5726 5725', 16627 'STATE 6 g 5687 5674', 16628 'STATE 5 # 5687 5727', 16629 'STATE 1 s 5687 5674', 16630 'STATE 3 g 5674 5728', 16631 'STATE 1 c 5687 5729', 16632 'STATE 3 e 5674 5730', 16633 'STATE 2 o 5732 5731', 16634 'STATE 2 a 5733 5656', 16635 'STATE 5 y 5735 5734', 16636 'STATE 6 e 5656 5736', 16637 'STATE 6 e 5687 5737', 16638 'STATE 2 o 5656 5687', 16639 'STATE 5 l 5739 5738', 16640 'STATE 1 f 5674 5740', 16641 'STATE 1 s 5742 5741', 16642 'STATE 3 g 5744 5743', 16643 'STATE 4 r 5674 5745', 16644 'STATE 2 0 5656 5746', 16645 'STATE 1 # 5674 5747', 16646 'STATE 3 g 5749 5748', 16647 'STATE 5 l 5674 5750', 16648 'STATE 5 l 5752 5751', 16649 'STATE 3 d 5687 5753', 16650 'STATE 3 a 5755 5754', 16651 'STATE 2 a 5674 5756', 16652 'STATE 2 a 5656 5757', 16653 'STATE 1 c 5695 5656', 16654 'STATE 5 l 5736 5695', 16655 'STATE 4 h 5759 5758', 16656 'STATE 4 l 5656 5674', 16657 'PHONE k', 16658 'STATE 6 l 5687 5760', 16659 'STATE 6 b 5656 5761', 16660 'STATE 2 a 5762 5674', 16661 'STATE 1 d 5687 5763', 16662 'STATE 2 i 5765 5764', 16663 'STATE 2 i 5687 5656', 16664 'STATE 4 t 5766 5674', 16665 'STATE 1 r 5735 5674', 16666 'STATE 6 n 5687 5767', 16667 'STATE 6 d 5656 5768', 16668 'STATE 6 e 5674 5687', 16669 'STATE 3 c 5674 5769', 16670 'STATE 5 o 5687 5770', 16671 'STATE 5 o 5687 5771', 16672 'STATE 5 i 5674 5772', 16673 'STATE 6 l 5774 5773', 16674 'STATE 6 t 5674 5775', 16675 'STATE 1 m 5687 5674', 16676 'STATE 2 r 5674 5776', 16677 'STATE 5 # 5656 5777', 16678 'STATE 5 e 5656 5674', 16679 'STATE 4 m 5656 5778', 16680 'STATE 5 i 5674 5656', 16681 'STATE 1 # 5687 5779', 16682 'STATE 1 l 5674 5780', 16683 'STATE 6 o 5674 5781', 16684 'STATE 6 s 5783 5782', 16685 'STATE 1 w 5656 5784', 16686 'STATE 1 h 5687 5656', 16687 'STATE 3 a 5674 5785', 16688 'STATE 5 e 5687 5786', 16689 'STATE 6 t 5674 5787', 16690 'STATE 5 v 5674 5788', 16691 'STATE 5 # 5687 5789', 16692 'STATE 5 u 5687 5790', 16693 'STATE 5 t 5792 5791', 16694 'STATE 2 0 5793 5674', 16695 'STATE 3 a 5687 5674', 16696 'STATE 6 s 5795 5794', 16697 'STATE 1 s 5674 5796', 16698 'STATE 1 o 5656 5674', 16699 'STATE 4 b 5656 5797', 16700 'STATE 1 r 5687 5798', 16701 'STATE 6 t 5687 5799', 16702 'STATE 1 v 5687 5800', 16703 'STATE 1 l 5674 5801', 16704 'STATE 2 i 5656 5802', 16705 'STATE 2 o 5656 5803', 16706 'STATE 1 # 5674 5656', 16707 'STATE 4 a 5674 5804', 16708 'STATE 3 i 5806 5805', 16709 'STATE 3 o 5674 5807', 16710 'STATE 5 n 5674 5808', 16711 'STATE 5 n 5810 5809', 16712 'STATE 2 h 5812 5811', 16713 'STATE 1 0 5674 5813', 16714 'STATE 6 a 5687 5674', 16715 'STATE 2 e 5674 5814', 16716 'STATE 3 a 5815 5674', 16717 'STATE 1 h 5674 5816', 16718 'STATE 4 d 5656 5817', 16719 'STATE 5 n 5674 5818', 16720 'STATE 2 o 5687 5819', 16721 'STATE 1 # 5820 5674', 16722 'STATE 1 # 5674 5821', 16723 'STATE 2 e 5687 5656', 16724 'STATE 5 d 5687 5822', 16725 'STATE 4 o 5674 5687', 16726 'STATE 6 # 5757 5674', 16727 'STATE 5 m 5656 5823', 16728 'STATE 6 # 5825 5824', 16729 'STATE 1 r 5687 5674', 16730 'STATE 5 v 5674 5826', 16731 'STATE 6 n 5687 5827', 16732 'STATE 6 s 5829 5828', 16733 'STATE 1 n 5674 5830', 16734 'STATE 2 v 5687 5831', 16735 'STATE 6 g 5674 5832', 16736 'STATE 1 # 5674 5687', 16737 'STATE 1 # 5674 5833', 16738 'STATE 4 f 5656 5834', 16739 'STATE 2 i 5674 5835', 16740 'STATE 6 i 5674 5836', 16741 'STATE 6 i 5674 5687', 16742 'STATE 6 t 5674 5837', 16743 'STATE 2 e 5687 5838', 16744 'STATE 5 s 5656 5839', 16745 'STATE 6 l 5841 5840', 16746 'STATE 2 r 5687 5842', 16747 'STATE 5 f 5674 5843', 16748 'STATE 6 t 5687 5844', 16749 'STATE 6 h 5674 5845', 16750 'STATE 1 j 5674 5846', 16751 'STATE 5 m 5674 5847', 16752 'STATE 6 t 5848 5674', 16753 'STATE 6 l 5674 5849', 16754 'STATE 2 e 5674 5687', 16755 'STATE 4 w 5656 5850', 16756 'STATE 5 e 5656 5687', 16757 'STATE 6 u 5687 5851', 16758 'STATE 2 i 5687 5674', 16759 'STATE 1 r 5687 5852', 16760 'STATE 1 0 5674 5853', 16761 'STATE 2 b 5674 5854', 16762 'STATE 1 c 5674 5855', 16763 'STATE 2 o 5855 5856', 16764 'STATE 6 d 5674 5857', 16765 'STATE 6 g 5674 5687', 16766 'STATE 5 u 5859 5858', 16767 'STATE 1 # 5674 5860', 16768 'STATE 5 n 5674 5687', 16769 'STATE 3 r 5674 5687', 16770 'STATE 6 b 5674 5861', 16771 'STATE 4 p 5656 5862', 16772 'STATE 2 a 5687 5863', 16773 'STATE 1 l 5656 5864', 16774 'STATE 5 a 5674 5865', 16775 'STATE 2 h 5674 5866', 16776 'STATE 5 e 5674 5687', 16777 'STATE 1 # 5687 5867', 16778 'STATE 6 s 5674 5868', 16779 'STATE 1 b 5848 5869', 16780 'PHONE zh', 16781 'STATE 5 m 5687 5870', 16782 'STATE 6 y 5687 5871', 16783 'STATE 5 u 5873 5872', 16784 'STATE 1 # 5674 5874', 16785 'STATE 5 r 5875 5687', 16786 'STATE 6 f 5674 5876', 16787 'STATE 2 s 5674 5687', 16788 'STATE 5 s 5674 5877', 16789 'STATE 5 s 5687 5878', 16790 'STATE 2 b 5674 5879', 16791 'STATE 5 n 5880 5674', 16792 'STATE 2 n 5687 5881', 16793 'STATE 4 o 5674 5882', 16794 'STATE 2 a 5656 5883', 16795 'STATE 2 i 5674 5687', 16796 'STATE 2 a 5656 5674', 16797 'STATE 2 m 5674 5884', 16798 'STATE 1 r 5674 5885', 16799 'STATE 5 r 5674 5886', 16800 'STATE 6 r 5888 5887', 16801 'STATE 1 0 5687 5674', 16802 'STATE 2 0 5890 5889', 16803 'STATE 4 a 5892 5891', 16804 'STATE 6 i 5656 5674', 16805 'STATE 6 n 5894 5893', 16806 'STATE 2 e 5674 5895', 16807 'STATE 6 g 5674 5896', 16808 'STATE 3 a 5898 5897', 16809 'STATE 5 o 5687 5899', 16810 'STATE 3 i 5687 5900', 16811 'STATE 6 m 5687 5901', 16812 'STATE 4 r 5674 5902', 16813 'STATE 1 h 5656 5674', 16814 'STATE 6 r 5656 5903', 16815 'STATE 5 i 5656 5674', 16816 'STATE 3 a 5674 5687', 16817 'STATE 6 m 5674 5904', 16818 'STATE 6 t 5687 5905', 16819 'STATE 5 n 5815 5687', 16820 'STATE 5 a 5674 5906', 16821 'STATE 6 i 5687 5674', 16822 'STATE 6 r 5687 5907', 16823 'STATE 4 l 5909 5908', 16824 'STATE 6 # 5656 5674', 16825 'STATE 5 d 5674 5910', 16826 'STATE 5 o 5687 5911', 16827 'STATE 5 e 5674 5912', 16828 'STATE 6 i 5687 5913', 16829 'STATE 5 e 5656 5914', 16830 'STATE 2 e 5757 5915', 16831 'STATE 5 b 5917 5916', 16832 'STATE 5 n 5919 5918', 16833 'STATE 5 h 5674 5687', 16834 'STATE 6 o 5687 5674', 16835 'STATE 4 u 5674 5656', 16836 'STATE 5 e 5921 5920', 16837 'STATE 6 l 5687 5922', 16838 'STATE 6 b 5674 5687', 16839 'STATE 6 # 5687 5923', 16840 'STATE 6 # 5924 5874', 16841 'STATE 6 s 5674 5925', 16842 'STATE 1 l 5656 5674', 16843 'STATE 5 e 5674 5926', 16844 'STATE 5 a 5687 5927', 16845 'STATE 3 o 5687 5928', 16846 'STATE 6 n 5674 5929', 16847 'STATE 6 a 5674 5930', 16848 'STATE 6 i 5687 5931', 16849 'STATE 3 r 5674 5932', 16850 'STATE 6 m 5674 5933', 16851 'STATE 6 t 5674 5687', 16852 'STATE 3 l 5674 5934', 16853 'STATE 1 # 5674 5935', 16854 'STATE 5 a 5656 5894', 16855 'STATE 6 a 5674 5936', 16856 'STATE 3 i 5687 5674', 16857 'STATE 5 m 5687 5937', 16858 'STATE 1 0 5938 5674', 16859 'STATE 5 b 5687 5674', 16860 'INDEX 5939 h', 16861 'STATE 3 # 5941 5940', 16862 'STATE 3 c 5943 5942', 16863 'STATE 4 a 5945 5944', 16864 'STATE 3 s 5947 5946', 16865 'STATE 4 o 5948 5947', 16866 'STATE 4 o 5945 5949', 16867 'PHONE hh', 16868 'STATE 3 t 5951 5950', 16869 'PHONE epsilon', 16870 'STATE 1 i 5945 5947', 16871 'STATE 4 i 5945 5952', 16872 'STATE 3 p 5954 5953', 16873 'STATE 4 o 5955 5947', 16874 'STATE 4 u 5945 5956', 16875 'STATE 3 g 5958 5957', 16876 'STATE 1 # 5947 5959', 16877 'STATE 1 0 5947 5960', 16878 'STATE 4 y 5945 5961', 16879 'STATE 1 0 5963 5962', 16880 'STATE 1 i 5965 5964', 16881 'STATE 1 h 5966 5947', 16882 'STATE 1 g 5945 5947', 16883 'STATE 4 e 5945 5967', 16884 'STATE 4 l 5947 5968', 16885 'STATE 4 o 5970 5969', 16886 'STATE 4 o 5972 5971', 16887 'STATE 4 o 5945 5973', 16888 'STATE 4 e 5947 5945', 16889 'STATE 4 r 5945 5974', 16890 'STATE 4 # 5947 5975', 16891 'STATE 3 o 5977 5976', 16892 'STATE 3 r 5947 5978', 16893 'STATE 4 a 5980 5979', 16894 'STATE 1 0 5947 5945', 16895 'STATE 4 a 5945 5947', 16896 'STATE 4 l 5945 5947', 16897 'STATE 4 n 5947 5981', 16898 'STATE 3 a 5973 5947', 16899 'STATE 4 a 5945 5982', 16900 'STATE 3 w 5945 5947', 16901 'STATE 4 u 5945 5947', 16902 'STATE 1 0 5947 5983', 16903 'STATE 4 r 5947 5984', 16904 'STATE 4 l 5947 5985', 16905 'STATE 1 n 5945 5947', 16906 'STATE 4 m 5947 5986', 16907 'STATE 4 m 5947 5945', 16908 'STATE 4 s 5947 5987', 16909 'STATE 3 w 5983 5988', 16910 'STATE 3 x 5990 5989', 16911 'STATE 4 t 5947 5991', 16912 'STATE 4 i 5947 5992', 16913 'STATE 4 d 5947 5993', 16914 'STATE 4 a 5947 5945', 16915 'STATE 4 o 5995 5994', 16916 'STATE 3 n 5945 5996', 16917 'STATE 1 s 5945 5997', 16918 'STATE 4 y 5999 5998', 16919 'STATE 1 c 5945 6000', 16920 'STATE 1 h 5992 6001', 16921 'STATE 3 e 5945 6002', 16922 'STATE 3 e 5945 6003', 16923 'STATE 3 z 6005 6004', 16924 'STATE 3 a 5945 5947', 16925 'STATE 3 d 5945 6006', 16926 'STATE 3 d 6008 6007', 16927 'STATE 4 a 5945 6009', 16928 'STATE 3 n 5945 6010', 16929 'STATE 1 u 5945 6011', 16930 'STATE 4 e 5945 6012', 16931 'STATE 4 e 5945 5947', 16932 'STATE 1 o 6013 5945', 16933 'STATE 1 e 5945 6014', 16934 'STATE 4 u 5945 6015', 16935 'STATE 3 r 5947 5945', 16936 'STATE 4 a 6017 6016', 16937 'STATE 1 e 5945 5947', 16938 'STATE 1 # 6019 6018', 16939 'STATE 1 # 5945 6020', 16940 'STATE 1 k 5947 6021', 16941 'STATE 4 i 5945 6022', 16942 'STATE 1 b 5945 6023', 16943 'STATE 3 o 5945 6024', 16944 'STATE 4 e 5945 5979', 16945 'STATE 1 v 5945 6025', 16946 'STATE 1 p 5945 6026', 16947 'STATE 1 m 5947 6027', 16948 'STATE 1 t 5945 6028', 16949 'STATE 3 i 5945 6029', 16950 'STATE 1 i 5945 6030', 16951 'STATE 1 f 5945 6031', 16952 'STATE 1 l 5945 6032', 16953 'STATE 1 d 5945 6033', 16954 'STATE 1 o 5945 6034', 16955 'STATE 3 o 5945 6035', 16956 'STATE 1 g 5945 6036', 16957 'STATE 3 a 5945 6037', 16958 'STATE 3 i 6039 6038', 16959 'STATE 3 m 5945 6040', 16960 'STATE 1 c 5945 6041', 16961 'STATE 1 n 5947 5945', 16962 'STATE 1 r 6042 5945', 16963 'STATE 1 n 5945 6043', 16964 'STATE 3 u 5947 5945', 16965 'STATE 3 e 5945 6044', 16966 'STATE 1 w 5945 6045', 16967 'STATE 1 r 5945 6046', 16968 'STATE 1 a 5945 6047', 16969 'STATE 3 r 5945 6048', 16970 'STATE 1 s 5945 6049', 16971 'STATE 1 m 5945 6002', 16972 'INDEX 6050 i', 16973 'STATE 5 g 6052 6051', 16974 'STATE 4 # 6054 6053', 16975 'STATE 6 # 6056 6055', 16976 'STATE 4 o 6058 6057', 16977 'STATE 3 a 6060 6059', 16978 'STATE 2 # 6062 6061', 16979 'STATE 4 n 6064 6063', 16980 'STATE 4 e 6066 6065', 16981 'STATE 3 t 6068 6067', 16982 'STATE 3 e 6070 6069', 16983 'STATE 2 h 6072 6071', 16984 'STATE 4 n 6074 6073', 16985 'STATE 4 e 6076 6075', 16986 'STATE 4 e 6076 6077', 16987 'STATE 2 # 6077 6078', 16988 'STATE 4 a 6080 6079', 16989 'STATE 2 # 6082 6081', 16990 'STATE 3 s 6084 6083', 16991 'STATE 5 n 6086 6085', 16992 'PHONE iy', 16993 'STATE 2 m 6072 6086', 16994 'STATE 2 k 6072 6087', 16995 'PHONE ay1', 16996 'STATE 4 e 6076 6088', 16997 'STATE 3 s 6090 6089', 16998 'STATE 4 r 6086 6091', 16999 'PHONE iy1', 17000 'PHONE ih1', 17001 'STATE 3 r 6093 6092', 17002 'STATE 3 a 6095 6094', 17003 'STATE 3 c 6097 6096', 17004 'STATE 5 r 6099 6098', 17005 'STATE 5 r 6101 6100', 17006 'STATE 2 # 6103 6102', 17007 'STATE 5 n 6086 6069', 17008 'STATE 5 u 6086 6069', 17009 'PHONE epsilon', 17010 'STATE 2 d 6086 6072', 17011 'STATE 6 e 6105 6104', 17012 'STATE 2 0 6077 6106', 17013 'STATE 6 e 6108 6107', 17014 'STATE 4 a 6110 6109', 17015 'STATE 3 w 6111 6107', 17016 'STATE 2 d 6077 6112', 17017 'STATE 5 e 6114 6113', 17018 'STATE 4 c 6116 6115', 17019 'STATE 3 t 6118 6117', 17020 'STATE 5 t 6069 6119', 17021 'STATE 5 # 6069 6120', 17022 'STATE 3 e 6122 6121', 17023 'STATE 5 w 6086 6123', 17024 'STATE 3 h 6072 6124', 17025 'STATE 5 n 6126 6125', 17026 'STATE 3 g 6086 6127', 17027 'STATE 4 o 6129 6128', 17028 'STATE 2 r 6107 6130', 17029 'STATE 3 e 6072 6131', 17030 'PHONE ih', 17031 'PHONE ax', 17032 'STATE 4 o 6132 6077', 17033 'STATE 3 d 6072 6069', 17034 'STATE 2 o 6107 6133', 17035 'STATE 2 e 6107 6134', 17036 'STATE 4 c 6136 6135', 17037 'STATE 4 v 6138 6137', 17038 'STATE 2 z 6077 6139', 17039 'STATE 5 # 6107 6086', 17040 'STATE 2 # 6141 6140', 17041 'STATE 5 t 6069 6142', 17042 'STATE 6 o 6069 6143', 17043 'STATE 5 s 6145 6144', 17044 'STATE 6 # 6147 6146', 17045 'STATE 2 m 6132 6072', 17046 'STATE 3 d 6149 6148', 17047 'STATE 3 p 6077 6150', 17048 'STATE 5 u 6152 6151', 17049 'STATE 2 l 6154 6153', 17050 'STATE 3 f 6069 6155', 17051 'STATE 4 a 6069 6156', 17052 'STATE 2 o 6132 6069', 17053 'STATE 4 d 6158 6157', 17054 'STATE 2 s 6160 6159', 17055 'PHONE ay', 17056 'STATE 2 a 6107 6161', 17057 'STATE 2 a 6107 6162', 17058 'STATE 4 r 6164 6163', 17059 'STATE 2 # 6166 6165', 17060 'STATE 3 o 6168 6167', 17061 'STATE 3 t 6107 6169', 17062 'STATE 5 a 6171 6170', 17063 'STATE 3 s 6173 6172', 17064 'STATE 3 g 6086 6174', 17065 'STATE 6 # 6086 6175', 17066 'STATE 5 l 6086 6176', 17067 'STATE 5 d 6178 6177', 17068 'STATE 3 f 6072 6179', 17069 'STATE 6 s 6181 6180', 17070 'STATE 3 a 6132 6182', 17071 'STATE 6 e 6076 6183', 17072 'STATE 5 t 6185 6184', 17073 'STATE 3 s 6069 6186', 17074 'STATE 5 r 6188 6187', 17075 'STATE 3 c 6086 6189', 17076 'STATE 3 n 6154 6190', 17077 'PHONE y', 17078 'STATE 5 l 6192 6191', 17079 'STATE 6 r 6086 6077', 17080 'STATE 4 g 6077 6072', 17081 'STATE 3 r 6193 6107', 17082 'STATE 3 r 6195 6194', 17083 'STATE 3 w 6077 6196', 17084 'STATE 2 e 6107 6077', 17085 'STATE 2 u 6107 6197', 17086 'STATE 3 e 6199 6198', 17087 'STATE 6 n 6201 6200', 17088 'STATE 5 # 6107 6202', 17089 'STATE 5 r 6072 6203', 17090 'STATE 6 # 6205 6204', 17091 'STATE 4 r 6206 6086', 17092 'STATE 3 s 6107 6207', 17093 'STATE 5 o 6209 6208', 17094 'STATE 4 n 6086 6210', 17095 'STATE 3 l 6212 6211', 17096 'STATE 5 k 6069 6213', 17097 'STATE 3 d 6072 6214', 17098 'STATE 2 s 6216 6215', 17099 'STATE 5 n 6086 6217', 17100 'STATE 5 w 6219 6218', 17101 'STATE 3 f 6072 6220', 17102 'STATE 6 # 6222 6221', 17103 'STATE 6 i 6077 6223', 17104 'STATE 2 i 6072 6224', 17105 'STATE 3 f 6072 6225', 17106 'STATE 5 s 6184 6226', 17107 'STATE 6 # 6072 6076', 17108 'STATE 6 z 6076 6227', 17109 'STATE 6 a 6076 6228', 17110 'STATE 2 0 6072 6229', 17111 'STATE 3 r 6231 6230', 17112 'STATE 3 g 6086 6069', 17113 'STATE 2 0 6132 6232', 17114 'STATE 3 b 6072 6233', 17115 'STATE 6 e 6072 6234', 17116 'STATE 2 b 6077 6235', 17117 'STATE 6 s 6107 6236', 17118 'STATE 6 t 6107 6237', 17119 'STATE 6 u 6077 6238', 17120 'STATE 2 o 6107 6239', 17121 'STATE 3 o 6241 6240', 17122 'STATE 4 g 6243 6242', 17123 'STATE 3 o 6245 6244', 17124 'STATE 5 a 6107 6246', 17125 'STATE 5 a 6248 6247', 17126 'STATE 5 k 6077 6249', 17127 'STATE 2 # 6251 6250', 17128 'STATE 4 n 6253 6252', 17129 'PHONE aa1', 17130 'STATE 3 e 6076 6254', 17131 'STATE 4 v 6086 6255', 17132 'STATE 4 n 6086 6256', 17133 'STATE 2 t 6072 6086', 17134 'STATE 3 g 6258 6257', 17135 'STATE 6 e 6260 6259', 17136 'STATE 6 i 6069 6261', 17137 'STATE 5 n 6263 6262', 17138 'STATE 2 n 6086 6264', 17139 'STATE 5 # 6069 6265', 17140 'STATE 6 # 6069 6086', 17141 'STATE 5 n 6267 6266', 17142 'STATE 3 v 6086 6268', 17143 'STATE 6 # 6270 6269', 17144 'STATE 3 r 6076 6271', 17145 'STATE 3 l 6273 6272', 17146 'STATE 6 e 6275 6274', 17147 'STATE 3 l 6154 6276', 17148 'STATE 3 s 6069 6277', 17149 'STATE 3 b 6279 6278', 17150 'STATE 6 e 6076 6072', 17151 'STATE 6 n 6077 6280', 17152 'STATE 5 # 6282 6281', 17153 'STATE 2 a 6154 6283', 17154 'STATE 2 p 6132 6069', 17155 'STATE 3 l 6285 6284', 17156 'STATE 6 t 6069 6286', 17157 'STATE 6 i 6132 6287', 17158 'STATE 2 t 6077 6288', 17159 'STATE 2 k 6077 6289', 17160 'STATE 2 e 6107 6290', 17161 'STATE 6 i 6077 6291', 17162 'STATE 2 r 6107 6292', 17163 'STATE 2 # 6294 6293', 17164 'STATE 4 s 6296 6295', 17165 'STATE 5 # 6298 6297', 17166 'STATE 5 h 6300 6299', 17167 'STATE 5 a 6302 6301', 17168 'STATE 5 # 6206 6086', 17169 'STATE 2 # 6304 6303', 17170 'STATE 6 # 6306 6305', 17171 'STATE 6 t 6308 6307', 17172 'STATE 3 e 6072 6309', 17173 'STATE 3 e 6311 6310', 17174 'STATE 4 r 6313 6312', 17175 'STATE 4 c 6315 6314', 17176 'STATE 3 l 6317 6316', 17177 'STATE 3 d 6319 6318', 17178 'STATE 4 s 6320 6086', 17179 'STATE 6 r 6086 6321', 17180 'STATE 3 o 6154 6322', 17181 'STATE 2 r 6086 6323', 17182 'STATE 2 g 6069 6324', 17183 'STATE 5 m 6086 6069', 17184 'STATE 5 s 6069 6325', 17185 'STATE 3 h 6072 6326', 17186 'STATE 6 # 6076 6069', 17187 'STATE 6 s 6086 6327', 17188 'STATE 6 i 6086 6069', 17189 'STATE 5 t 6329 6328', 17190 'STATE 2 f 6086 6330', 17191 'STATE 6 i 6108 6069', 17192 'STATE 2 f 6076 6069', 17193 'STATE 2 p 6072 6331', 17194 'STATE 6 t 6069 6332', 17195 'STATE 2 i 6069 6333', 17196 'STATE 2 l 6069 6072', 17197 'STATE 2 n 6069 6077', 17198 'STATE 2 e 6077 6334', 17199 'STATE 2 o 6069 6335', 17200 'STATE 2 r 6069 6336', 17201 'STATE 5 n 6338 6337', 17202 'STATE 5 n 6108 6076', 17203 'STATE 3 w 6077 6339', 17204 'STATE 3 a 6072 6340', 17205 'STATE 3 h 6341 6069', 17206 'STATE 3 n 6154 6342', 17207 'STATE 3 r 6069 6343', 17208 'STATE 2 g 6069 6154', 17209 'STATE 5 n 6072 6344', 17210 'STATE 3 b 6132 6072', 17211 'STATE 2 d 6107 6345', 17212 'STATE 6 u 6077 6346', 17213 'STATE 2 a 6107 6347', 17214 'STATE 3 l 6077 6348', 17215 'STATE 2 i 6107 6345', 17216 'STATE 2 0 6350 6349', 17217 'STATE 4 g 6352 6351', 17218 'STATE 5 c 6108 6086', 17219 'STATE 5 # 6206 6353', 17220 'STATE 2 r 6355 6354', 17221 'STATE 2 h 6357 6356', 17222 'STATE 5 n 6359 6358', 17223 'STATE 6 # 6086 6360', 17224 'STATE 5 o 6362 6361', 17225 'STATE 3 e 6086 6363', 17226 'STATE 2 0 6072 6364', 17227 'STATE 5 o 6107 6086', 17228 'STATE 3 e 6072 6365', 17229 'STATE 5 o 6367 6366', 17230 'STATE 6 l 6369 6368', 17231 'STATE 3 r 6107 6370', 17232 'STATE 5 h 6372 6371', 17233 'STATE 4 z 6374 6373', 17234 'STATE 6 d 6086 6375', 17235 'STATE 6 s 6377 6376', 17236 'STATE 3 d 6086 6378', 17237 'STATE 4 l 6380 6379', 17238 'STATE 2 # 6072 6381', 17239 'STATE 3 w 6072 6382', 17240 'STATE 2 o 6076 6383', 17241 'STATE 2 o 6385 6384', 17242 'STATE 2 # 6386 6072', 17243 'STATE 6 # 6387 6086', 17244 'STATE 6 n 6086 6388', 17245 'STATE 3 n 6390 6389', 17246 'STATE 6 # 6069 6391', 17247 'STATE 2 p 6072 6392', 17248 'STATE 6 # 6086 6393', 17249 'STATE 3 v 6072 6394', 17250 'STATE 5 # 6086 6395', 17251 'STATE 6 l 6069 6396', 17252 'STATE 3 u 6072 6397', 17253 'STATE 3 c 6399 6398', 17254 'STATE 2 r 6069 6400', 17255 'STATE 6 c 6069 6401', 17256 'STATE 2 c 6072 6069', 17257 'STATE 2 i 6069 6077', 17258 'STATE 3 r 6069 6077', 17259 'STATE 3 r 6069 6402', 17260 'STATE 3 l 6076 6403', 17261 'STATE 3 v 6069 6076', 17262 'STATE 3 b 6077 6404', 17263 'STATE 5 t 6069 6405', 17264 'STATE 2 c 6069 6072', 17265 'STATE 6 a 6154 6069', 17266 'STATE 3 p 6069 6406', 17267 'STATE 5 c 6072 6407', 17268 'STATE 2 h 6107 6077', 17269 'STATE 6 a 6107 6408', 17270 'STATE 2 r 6107 6345', 17271 'STATE 6 l 6077 6409', 17272 'STATE 5 a 6411 6410', 17273 'STATE 4 n 6077 6412', 17274 'STATE 5 a 6414 6413', 17275 'STATE 5 h 6072 6415', 17276 'STATE 2 b 6086 6416', 17277 'STATE 6 # 6418 6417', 17278 'STATE 4 n 6420 6419', 17279 'STATE 2 t 6422 6421', 17280 'STATE 4 s 6132 6423', 17281 'STATE 2 w 6425 6424', 17282 'STATE 6 i 6107 6426', 17283 'STATE 2 h 6072 6086', 17284 'STATE 5 r 6428 6427', 17285 'STATE 3 e 6086 6429', 17286 'STATE 3 p 6431 6430', 17287 'STATE 2 n 6072 6432', 17288 'STATE 5 i 6434 6433', 17289 'STATE 3 e 6436 6435', 17290 'STATE 3 r 6076 6437', 17291 'STATE 6 # 6107 6438', 17292 'STATE 3 g 6107 6439', 17293 'STATE 2 e 6107 6440', 17294 'STATE 3 b 6072 6441', 17295 'STATE 3 m 6442 6077', 17296 'STATE 6 s 6444 6443', 17297 'STATE 6 n 6108 6445', 17298 'STATE 4 t 6446 6072', 17299 'STATE 3 e 6072 6447', 17300 'STATE 4 g 6132 6072', 17301 'STATE 6 l 6107 6072', 17302 'STATE 4 r 6072 6448', 17303 'STATE 2 # 6072 6449', 17304 'STATE 3 r 6451 6450', 17305 'STATE 2 # 6072 6452', 17306 'STATE 2 a 6076 6072', 17307 'STATE 3 n 6454 6453', 17308 'STATE 6 r 6069 6107', 17309 'STATE 6 s 6132 6455', 17310 'STATE 5 e 6086 6077', 17311 'STATE 4 d 6072 6086', 17312 'STATE 3 a 6154 6456', 17313 'STATE 6 u 6069 6457', 17314 'STATE 5 n 6069 6458', 17315 'STATE 2 e 6460 6459', 17316 'STATE 5 # 6462 6461', 17317 'STATE 6 # 6072 6463', 17318 'STATE 2 i 6086 6069', 17319 'STATE 5 u 6465 6464', 17320 'STATE 2 p 6072 6466', 17321 'STATE 3 t 6108 6467', 17322 'STATE 2 i 6108 6468', 17323 'STATE 2 a 6069 6469', 17324 'STATE 6 o 6069 6076', 17325 'STATE 3 z 6069 6470', 17326 'STATE 5 t 6472 6471', 17327 'STATE 3 g 6077 6473', 17328 'STATE 2 i 6475 6474', 17329 'STATE 2 s 6086 6476', 17330 'STATE 5 t 6072 6477', 17331 'STATE 6 o 6077 6478', 17332 'STATE 3 t 6479 6107', 17333 'STATE 5 y 6481 6480', 17334 'STATE 6 # 6483 6482', 17335 'STATE 4 m 6077 6484', 17336 'STATE 5 o 6486 6485', 17337 'STATE 6 # 6076 6487', 17338 'STATE 5 r 6489 6488', 17339 'STATE 2 a 6077 6086', 17340 'STATE 4 n 6491 6490', 17341 'STATE 4 s 6493 6492', 17342 'STATE 6 u 6108 6494', 17343 'STATE 6 # 6076 6495', 17344 'STATE 4 n 6497 6496', 17345 'STATE 4 n 6132 6072', 17346 'STATE 4 t 6132 6072', 17347 'STATE 5 # 6076 6072', 17348 'STATE 5 # 6132 6072', 17349 'STATE 2 r 6108 6086', 17350 'STATE 5 i 6499 6498', 17351 'STATE 2 0 6501 6500', 17352 'STATE 6 # 6077 6502', 17353 'STATE 6 # 6077 6503', 17354 'STATE 2 # 6072 6504', 17355 'STATE 5 o 6086 6072', 17356 'STATE 5 k 6506 6505', 17357 'STATE 6 s 6108 6507', 17358 'STATE 5 i 6076 6508', 17359 'STATE 5 h 6509 6076', 17360 'STATE 3 n 6076 6510', 17361 'STATE 2 n 6069 6511', 17362 'STATE 2 s 6107 6512', 17363 'STATE 3 d 6513 6108', 17364 'STATE 5 t 6515 6514', 17365 'STATE 6 e 6107 6077', 17366 'STATE 2 0 6517 6516', 17367 'STATE 4 n 6519 6518', 17368 'STATE 6 d 6072 6520', 17369 'STATE 6 r 6521 6072', 17370 'STATE 4 b 6523 6522', 17371 'STATE 3 e 6525 6524', 17372 'STATE 3 t 6108 6526', 17373 'STATE 2 e 6108 6527', 17374 'STATE 2 o 6077 6072', 17375 'STATE 2 a 6076 6528', 17376 'STATE 2 l 6107 6529', 17377 'STATE 2 u 6107 6072', 17378 'STATE 6 r 6132 6072', 17379 'STATE 5 h 6072 6530', 17380 'STATE 2 e 6531 6069', 17381 'STATE 2 e 6069 6086', 17382 'STATE 5 r 6154 6532', 17383 'STATE 5 # 6069 6533', 17384 'STATE 6 s 6086 6069', 17385 'STATE 2 o 6069 6086', 17386 'STATE 3 w 6072 6534', 17387 'STATE 2 c 6536 6535', 17388 'STATE 6 # 6086 6069', 17389 'STATE 6 y 6072 6537', 17390 'STATE 3 n 6154 6538', 17391 'STATE 2 s 6072 6069', 17392 'STATE 2 o 6069 6539', 17393 'STATE 2 l 6069 6540', 17394 'STATE 3 s 6076 6541', 17395 'STATE 6 z 6076 6542', 17396 'STATE 3 v 6077 6543', 17397 'STATE 3 c 6462 6544', 17398 'STATE 6 a 6086 6069', 17399 'STATE 3 g 6086 6545', 17400 'STATE 3 r 6069 6546', 17401 'STATE 6 t 6107 6547', 17402 'STATE 6 s 6107 6077', 17403 'STATE 5 h 6549 6548', 17404 'STATE 4 n 6550 6108', 17405 'STATE 6 t 6552 6551', 17406 'STATE 4 k 6107 6553', 17407 'STATE 5 o 6072 6554', 17408 'STATE 4 u 6189 6555', 17409 'STATE 6 # 6076 6556', 17410 'STATE 4 s 6077 6557', 17411 'STATE 6 # 6559 6558', 17412 'STATE 6 e 6132 6072', 17413 'STATE 5 t 6122 6560', 17414 'STATE 6 t 6108 6072', 17415 'STATE 2 h 6072 6561', 17416 'STATE 5 t 6108 6562', 17417 'STATE 6 # 6563 6072', 17418 'STATE 5 f 6077 6564', 17419 'STATE 2 f 6072 6565', 17420 'STATE 2 r 6086 6566', 17421 'STATE 5 # 6568 6567', 17422 'STATE 3 p 6077 6569', 17423 'STATE 3 m 6077 6086', 17424 'STATE 6 i 6077 6107', 17425 'STATE 6 l 6107 6570', 17426 'STATE 2 d 6086 6571', 17427 'STATE 6 t 6086 6072', 17428 'STATE 5 t 6573 6572', 17429 'STATE 2 e 6107 6574', 17430 'STATE 6 z 6108 6575', 17431 'STATE 5 s 6107 6576', 17432 'STATE 2 r 6132 6072', 17433 'STATE 3 t 6107 6076', 17434 'STATE 3 r 6578 6577', 17435 'STATE 3 d 6580 6579', 17436 'STATE 2 n 6108 6581', 17437 'STATE 6 # 6076 6582', 17438 'STATE 6 o 6107 6077', 17439 'STATE 4 g 6584 6583', 17440 'STATE 4 n 6077 6585', 17441 'STATE 4 g 6107 6586', 17442 'STATE 3 s 6588 6587', 17443 'STATE 6 s 6072 6589', 17444 'STATE 2 r 6077 6072', 17445 'STATE 3 t 6072 6590', 17446 'STATE 3 f 6072 6591', 17447 'STATE 3 u 6593 6592', 17448 'STATE 4 d 6072 6076', 17449 'STATE 2 a 6108 6594', 17450 'STATE 2 s 6596 6595', 17451 'STATE 3 t 6076 6597', 17452 'STATE 6 s 6599 6598', 17453 'STATE 5 s 6601 6600', 17454 'STATE 6 # 6602 6069', 17455 'STATE 6 s 6154 6603', 17456 'STATE 6 # 6069 6072', 17457 'STATE 5 l 6069 6604', 17458 'STATE 2 a 6606 6605', 17459 'STATE 6 # 6108 6076', 17460 'STATE 3 t 6069 6607', 17461 'STATE 2 b 6072 6608', 17462 'STATE 2 l 6069 6609', 17463 'STATE 2 a 6611 6610', 17464 'STATE 6 h 6613 6612', 17465 'STATE 3 v 6069 6614', 17466 'STATE 3 f 6077 6076', 17467 'STATE 3 v 6072 6069', 17468 'STATE 3 z 6069 6615', 17469 'STATE 6 i 6072 6110', 17470 'STATE 3 h 6077 6616', 17471 'STATE 5 o 6618 6617', 17472 'STATE 4 g 6072 6619', 17473 'STATE 6 # 6072 6077', 17474 'STATE 4 g 6621 6620', 17475 'STATE 4 v 6623 6622', 17476 'STATE 4 l 6624 6076', 17477 'STATE 5 a 6626 6625', 17478 'STATE 5 i 6628 6627', 17479 'STATE 4 k 6107 6629', 17480 'STATE 4 y 6076 6630', 17481 'STATE 5 u 6632 6631', 17482 'STATE 5 s 6077 6076', 17483 'STATE 2 c 6076 6633', 17484 'STATE 4 n 6076 6634', 17485 'STATE 5 s 6072 6077', 17486 'STATE 4 s 6072 6076', 17487 'STATE 5 i 6072 6635', 17488 'STATE 2 b 6132 6636', 17489 'STATE 2 b 6132 6072', 17490 'STATE 5 u 6638 6637', 17491 'STATE 3 e 6077 6639', 17492 'STATE 2 0 6072 6640', 17493 'STATE 2 # 6641 6072', 17494 'STATE 2 # 6643 6642', 17495 'STATE 6 i 6645 6644', 17496 'STATE 2 n 6077 6646', 17497 'STATE 2 r 6107 6647', 17498 'STATE 6 d 6108 6648', 17499 'STATE 5 t 6077 6649', 17500 'STATE 3 h 6107 6650', 17501 'STATE 2 f 6107 6108', 17502 'STATE 2 c 6652 6651', 17503 'STATE 2 a 6108 6107', 17504 'STATE 2 u 6107 6108', 17505 'STATE 5 c 6654 6653', 17506 'STATE 6 n 6656 6655', 17507 'STATE 6 n 6658 6657', 17508 'STATE 4 d 6660 6659', 17509 'STATE 4 l 6662 6661', 17510 'STATE 3 m 6108 6663', 17511 'STATE 2 u 6086 6069', 17512 'STATE 6 r 6072 6077', 17513 'STATE 6 r 6665 6664', 17514 'STATE 6 r 6077 6666', 17515 'STATE 4 t 6668 6667', 17516 'STATE 4 s 6086 6072', 17517 'STATE 3 s 6108 6669', 17518 'STATE 2 n 6108 6670', 17519 'STATE 3 t 6108 6072', 17520 'STATE 2 s 6072 6671', 17521 'STATE 6 # 6072 6672', 17522 'STATE 3 l 6077 6072', 17523 'STATE 3 f 6674 6673', 17524 'STATE 6 # 6675 6072', 17525 'STATE 5 n 6069 6154', 17526 'STATE 6 i 6069 6676', 17527 'STATE 3 l 6072 6069', 17528 'STATE 6 # 6678 6677', 17529 'STATE 3 n 6154 6679', 17530 'STATE 6 t 6069 6680', 17531 'STATE 3 l 6069 6681', 17532 'STATE 2 n 6069 6682', 17533 'STATE 2 t 6069 6683', 17534 'STATE 3 n 6069 6684', 17535 'STATE 6 b 6069 6076', 17536 'STATE 3 p 6069 6076', 17537 'STATE 6 r 6076 6685', 17538 'STATE 3 c 6687 6686', 17539 'STATE 6 i 6077 6688', 17540 'STATE 4 u 6690 6689', 17541 'STATE 6 # 6076 6691', 17542 'STATE 4 s 6693 6692', 17543 'STATE 4 v 6695 6694', 17544 'STATE 6 n 6107 6696', 17545 'STATE 2 c 6697 6108', 17546 'STATE 3 r 6072 6698', 17547 'STATE 3 u 6076 6699', 17548 'STATE 5 l 6701 6700', 17549 'STATE 6 l 6108 6702', 17550 'STATE 5 d 6704 6703', 17551 'STATE 6 n 6706 6705', 17552 'STATE 4 v 6107 6707', 17553 'STATE 6 t 6709 6708', 17554 'STATE 6 e 6077 6710', 17555 'STATE 6 r 6077 6069', 17556 'STATE 4 s 6072 6711', 17557 'STATE 5 y 6108 6712', 17558 'STATE 5 v 6077 6713', 17559 'STATE 4 l 6076 6714', 17560 'STATE 3 e 6716 6715', 17561 'STATE 6 s 6072 6077', 17562 'STATE 3 m 6077 6717', 17563 'STATE 6 c 6072 6718', 17564 'STATE 3 h 6077 6107', 17565 'STATE 2 e 6072 6719', 17566 'STATE 6 d 6132 6720', 17567 'STATE 5 o 6722 6721', 17568 'STATE 5 h 6076 6107', 17569 'STATE 6 s 6723 6077', 17570 'STATE 6 s 6725 6724', 17571 'STATE 6 n 6727 6726', 17572 'STATE 2 s 6729 6728', 17573 'STATE 2 a 6107 6730', 17574 'STATE 3 m 6731 6107', 17575 'STATE 3 t 6108 6107', 17576 'STATE 3 n 6077 6732', 17577 'STATE 6 i 6069 6077', 17578 'STATE 6 d 6734 6733', 17579 'STATE 2 e 6108 6735', 17580 'STATE 2 s 6737 6736', 17581 'STATE 3 l 6108 6738', 17582 'STATE 4 r 6107 6739', 17583 'STATE 6 o 6072 6132', 17584 'STATE 4 c 6596 6740', 17585 'STATE 2 o 6076 6072', 17586 'STATE 3 g 6108 6741', 17587 'STATE 3 l 6743 6742', 17588 'STATE 3 n 6132 6744', 17589 'STATE 6 l 6072 6077', 17590 'STATE 4 s 6746 6745', 17591 'STATE 2 i 6108 6747', 17592 'STATE 3 r 6108 6748', 17593 'STATE 3 v 6108 6749', 17594 'STATE 2 o 6076 6750', 17595 'STATE 2 0 6072 6751', 17596 'STATE 2 t 6753 6752', 17597 'STATE 2 i 6072 6069', 17598 'STATE 3 r 6076 6069', 17599 'STATE 2 l 6754 6069', 17600 'STATE 5 v 6076 6755', 17601 'STATE 5 f 6076 6756', 17602 'STATE 6 # 6069 6076', 17603 'STATE 6 # 6069 6757', 17604 'STATE 6 t 6069 6758', 17605 'STATE 2 e 6069 6759', 17606 'STATE 3 v 6069 6760', 17607 'STATE 3 v 6154 6069', 17608 'STATE 3 p 6072 6076', 17609 'STATE 3 x 6086 6069', 17610 'STATE 6 a 6069 6086', 17611 'STATE 2 m 6107 6761', 17612 'STATE 6 n 6763 6762', 17613 'STATE 6 # 6069 6764', 17614 'STATE 4 k 6107 6765', 17615 'STATE 2 s 6077 6766', 17616 'STATE 3 f 6077 6767', 17617 'STATE 6 s 6769 6768', 17618 'STATE 3 v 6072 6770', 17619 'STATE 3 r 6108 6580', 17620 'STATE 4 n 6108 6072', 17621 'STATE 2 o 6108 6771', 17622 'STATE 2 a 6077 6076', 17623 'STATE 4 g 6773 6772', 17624 'STATE 4 l 6077 6774', 17625 'STATE 6 n 6776 6775', 17626 'STATE 5 u 6778 6777', 17627 'STATE 4 d 6077 6779', 17628 'STATE 6 # 6076 6780', 17629 'STATE 4 s 6077 6781', 17630 'STATE 4 s 6077 6782', 17631 'STATE 6 r 6784 6783', 17632 'STATE 4 l 6132 6077', 17633 'STATE 5 a 6786 6785', 17634 'STATE 2 f 6108 6787', 17635 'STATE 4 t 6076 6788', 17636 'STATE 6 e 6790 6789', 17637 'STATE 2 r 6076 6563', 17638 'STATE 5 y 6072 6086', 17639 'STATE 2 w 6077 6086', 17640 'STATE 2 a 6086 6791', 17641 'STATE 6 l 6107 6792', 17642 'STATE 3 h 6107 6793', 17643 'STATE 3 g 6086 6794', 17644 'STATE 6 l 6796 6795', 17645 'STATE 2 0 6072 6797', 17646 'STATE 3 d 6107 6077', 17647 'STATE 2 i 6107 6798', 17648 'STATE 2 d 6107 6799', 17649 'STATE 2 e 6801 6800', 17650 'STATE 3 d 6108 6072', 17651 'STATE 3 w 6803 6802', 17652 'STATE 3 t 6077 6107', 17653 'STATE 6 b 6077 6804', 17654 'STATE 2 e 6108 6107', 17655 'STATE 5 i 6077 6805', 17656 'STATE 2 w 6072 6806', 17657 'STATE 4 t 6808 6807', 17658 'STATE 2 w 6072 6809', 17659 'STATE 3 r 6077 6107', 17660 'STATE 6 r 6072 6107', 17661 'STATE 2 e 6107 6108', 17662 'STATE 4 k 6072 6810', 17663 'STATE 4 f 6108 6811', 17664 'STATE 3 l 6072 6812', 17665 'STATE 4 p 6072 6813', 17666 'STATE 6 a 6077 6814', 17667 'STATE 4 t 6077 6815', 17668 'STATE 4 g 6107 6072', 17669 'STATE 2 a 6108 6816', 17670 'STATE 2 e 6072 6817', 17671 'STATE 2 o 6108 6509', 17672 'STATE 2 r 6077 6818', 17673 'STATE 3 v 6072 6819', 17674 'STATE 6 a 6107 6820', 17675 'STATE 3 e 6086 6821', 17676 'STATE 5 # 6069 6822', 17677 'STATE 6 # 6824 6823', 17678 'STATE 6 a 6076 6825', 17679 'STATE 2 t 6076 6826', 17680 'STATE 3 p 6076 6827', 17681 'STATE 6 c 6069 6828', 17682 'STATE 2 f 6069 6829', 17683 'STATE 2 p 6069 6830', 17684 'STATE 3 d 6107 6831', 17685 'STATE 4 k 6833 6832', 17686 'STATE 4 z 6072 6834', 17687 'STATE 6 p 6072 6265', 17688 'STATE 6 s 6836 6835', 17689 'STATE 6 o 6108 6837', 17690 'STATE 2 s 6077 6838', 17691 'STATE 4 k 6840 6839', 17692 'STATE 2 o 6108 6076', 17693 'STATE 3 r 6072 6841', 17694 'STATE 2 c 6108 6107', 17695 'STATE 4 s 6842 6077', 17696 'STATE 6 o 6077 6107', 17697 'STATE 6 e 6072 6843', 17698 'STATE 4 s 6077 6844', 17699 'STATE 4 v 6072 6107', 17700 'STATE 3 v 6846 6845', 17701 'STATE 4 l 6108 6847', 17702 'STATE 4 l 6849 6848', 17703 'STATE 4 v 6723 6850', 17704 'STATE 4 v 6723 6851', 17705 'STATE 3 s 6853 6852', 17706 'STATE 3 l 6077 6854', 17707 'STATE 3 b 6132 6855', 17708 'STATE 5 n 6857 6856', 17709 'STATE 3 g 6077 6858', 17710 'STATE 2 v 6086 6859', 17711 'STATE 2 n 6076 6860', 17712 'STATE 5 c 6077 6861', 17713 'STATE 5 t 6077 6086', 17714 'STATE 3 h 6086 6077', 17715 'STATE 2 # 6077 6862', 17716 'STATE 2 0 6107 6072', 17717 'STATE 3 m 6864 6863', 17718 'STATE 5 h 6866 6865', 17719 'STATE 2 r 6077 6867', 17720 'STATE 3 t 6069 6868', 17721 'STATE 3 r 6077 6869', 17722 'STATE 2 n 6107 6077', 17723 'STATE 6 a 6077 6870', 17724 'STATE 3 n 6108 6077', 17725 'STATE 2 l 6107 6871', 17726 'STATE 5 k 6872 6107', 17727 'STATE 2 l 6107 6873', 17728 'STATE 3 v 6077 6874', 17729 'STATE 6 r 6876 6875', 17730 'STATE 4 s 6072 6877', 17731 'STATE 2 i 6108 6878', 17732 'STATE 3 r 6880 6879', 17733 'STATE 6 n 6077 6881', 17734 'STATE 4 s 6072 6882', 17735 'STATE 3 b 6072 6883', 17736 'STATE 4 l 6885 6884', 17737 'STATE 4 c 6072 6886', 17738 'STATE 3 m 6077 6853', 17739 'STATE 3 m 6072 6887', 17740 'STATE 3 s 6072 6509', 17741 'STATE 2 i 6077 6108', 17742 'STATE 3 b 6072 6888', 17743 'STATE 6 t 6077 6889', 17744 'STATE 3 h 6069 6890', 17745 'STATE 5 n 6069 6891', 17746 'STATE 6 t 6154 6069', 17747 'STATE 5 m 6154 6069', 17748 'STATE 5 b 6076 6892', 17749 'STATE 2 s 6076 6675', 17750 'STATE 2 o 6069 6076', 17751 'STATE 6 n 6069 6679', 17752 'STATE 3 r 6072 6069', 17753 'STATE 3 d 6069 6893', 17754 'STATE 3 n 6107 6894', 17755 'STATE 4 g 6896 6895', 17756 'STATE 5 i 6076 6107', 17757 'STATE 4 m 6077 6897', 17758 'STATE 4 g 6899 6898', 17759 'STATE 4 t 6076 6900', 17760 'STATE 6 e 6902 6901', 17761 'STATE 6 # 6904 6903', 17762 'STATE 6 l 6906 6905', 17763 'STATE 6 w 6069 6907', 17764 'STATE 3 n 6107 6908', 17765 'STATE 6 i 6909 6077', 17766 'STATE 6 a 6077 6072', 17767 'STATE 6 r 6077 6072', 17768 'STATE 5 r 6911 6910', 17769 'STATE 4 b 6072 6912', 17770 'STATE 6 s 6914 6913', 17771 'STATE 3 f 6072 6915', 17772 'STATE 3 w 6072 6077', 17773 'STATE 4 p 6069 6077', 17774 'STATE 4 m 6916 6072', 17775 'STATE 6 r 6918 6917', 17776 'STATE 4 m 6077 6072', 17777 'STATE 3 d 6920 6919', 17778 'STATE 4 l 6108 6077', 17779 'STATE 3 d 6922 6921', 17780 'STATE 3 s 6924 6923', 17781 'STATE 3 l 6077 6925', 17782 'STATE 6 h 6086 6926', 17783 'STATE 5 a 6076 6927', 17784 'STATE 5 s 6077 6928', 17785 'STATE 6 # 6077 6929', 17786 'STATE 3 v 6077 6107', 17787 'STATE 6 b 6107 6077', 17788 'STATE 6 e 6931 6930', 17789 'STATE 2 c 6933 6932', 17790 'STATE 3 t 6077 6934', 17791 'STATE 3 n 6925 6935', 17792 'STATE 3 t 6077 6936', 17793 'STATE 3 l 6077 6937', 17794 'STATE 2 r 6107 6938', 17795 'STATE 2 d 6107 6939', 17796 'STATE 6 n 6940 6731', 17797 'STATE 5 a 6942 6941', 17798 'STATE 4 r 6944 6943', 17799 'STATE 4 k 6107 6945', 17800 'STATE 2 r 6108 6946', 17801 'STATE 2 e 6108 6072', 17802 'STATE 4 d 6948 6947', 17803 'STATE 2 b 6077 6072', 17804 'STATE 4 c 6072 6949', 17805 'STATE 2 i 6950 6072', 17806 'STATE 3 f 6072 6951', 17807 'STATE 3 w 6072 6952', 17808 'STATE 3 s 6072 6953', 17809 'STATE 4 f 6072 6954', 17810 'STATE 3 v 6072 6955', 17811 'STATE 3 d 6957 6956', 17812 'STATE 2 d 6072 6958', 17813 'STATE 5 # 6069 6959', 17814 'STATE 6 # 6072 6960', 17815 'STATE 5 f 6076 6961', 17816 'STATE 2 e 6069 6962', 17817 'STATE 6 l 6107 6963', 17818 'STATE 5 d 6965 6964', 17819 'STATE 5 # 6967 6966', 17820 'STATE 4 g 6077 6968', 17821 'STATE 4 v 6970 6969', 17822 'STATE 2 n 6077 6971', 17823 'STATE 3 h 6108 6972', 17824 'STATE 3 r 6077 6973', 17825 'STATE 3 r 6077 6108', 17826 'STATE 3 r 6975 6974', 17827 'STATE 3 k 6107 6976', 17828 'STATE 6 b 6978 6977', 17829 'STATE 3 r 6108 6979', 17830 'STATE 3 r 6108 6107', 17831 'STATE 6 r 6069 6980', 17832 'STATE 5 h 6107 6077', 17833 'STATE 5 l 6982 6981', 17834 'STATE 4 s 6077 6983', 17835 'STATE 6 a 6985 6984', 17836 'STATE 3 s 6077 6986', 17837 'STATE 4 s 6077 6072', 17838 'STATE 3 m 6988 6987', 17839 'STATE 3 d 6108 6077', 17840 'STATE 3 b 6108 6989', 17841 'STATE 4 m 6132 6990', 17842 'STATE 3 m 6992 6991', 17843 'STATE 4 m 6077 6108', 17844 'STATE 5 l 6107 6077', 17845 'STATE 6 t 6077 6107', 17846 'STATE 6 i 6077 6993', 17847 'STATE 6 a 6077 6994', 17848 'STATE 6 l 6069 6107', 17849 'STATE 2 h 6072 6995', 17850 'STATE 4 l 6072 6086', 17851 'STATE 5 t 6077 6072', 17852 'STATE 2 a 6086 6077', 17853 'STATE 5 y 6108 6996', 17854 'STATE 3 t 6108 6997', 17855 'STATE 6 o 6108 6998', 17856 'STATE 6 e 6069 6077', 17857 'STATE 3 d 6077 6108', 17858 'STATE 2 p 6108 6999', 17859 'STATE 2 t 6077 7000', 17860 'STATE 3 f 6077 7001', 17861 'STATE 2 h 6909 6107', 17862 'STATE 2 t 6077 6107', 17863 'STATE 3 f 6107 7002', 17864 'STATE 6 n 6077 7003', 17865 'STATE 3 r 6107 7004', 17866 'STATE 6 k 7006 7005', 17867 'STATE 3 d 6086 7007', 17868 'STATE 4 t 7009 7008', 17869 'STATE 3 t 6108 7010', 17870 'STATE 2 l 6107 6108', 17871 'STATE 2 i 6132 6108', 17872 'STATE 4 t 6072 6589', 17873 'STATE 3 c 6072 6108', 17874 'STATE 2 r 6076 7011', 17875 'STATE 3 s 7013 7012', 17876 'STATE 6 y 6072 7014', 17877 'STATE 4 k 6072 6988', 17878 'STATE 3 w 6072 7015', 17879 'STATE 2 l 6072 7016', 17880 'STATE 2 n 6072 6076', 17881 'STATE 6 r 7018 7017', 17882 'STATE 2 b 6069 7019', 17883 'STATE 6 s 6072 6069', 17884 'STATE 2 y 6076 7020', 17885 'STATE 2 o 6069 7021', 17886 'STATE 2 n 6077 7022', 17887 'STATE 5 i 7024 7023', 17888 'STATE 6 a 7026 7025', 17889 'STATE 5 n 7028 7027', 17890 'STATE 2 e 6107 7029', 17891 'STATE 5 i 7031 7030', 17892 'STATE 6 r 7033 7032', 17893 'STATE 2 r 6072 6077', 17894 'STATE 2 g 6107 7034', 17895 'STATE 4 n 6076 6108', 17896 'STATE 2 e 6108 6077', 17897 'STATE 6 m 6107 7035', 17898 'STATE 6 e 6107 7036', 17899 'STATE 2 a 6107 7037', 17900 'STATE 6 n 7039 7038', 17901 'STATE 2 s 6086 7040', 17902 'STATE 2 s 6108 7041', 17903 'STATE 2 l 6107 6077', 17904 'STATE 4 k 6442 7042', 17905 'STATE 4 l 6077 7043', 17906 'STATE 3 c 6077 7044', 17907 'STATE 5 c 7045 6077', 17908 'STATE 4 n 6077 7046', 17909 'STATE 6 l 6107 7047', 17910 'STATE 6 o 6077 7048', 17911 'STATE 4 n 6072 6077', 17912 'STATE 3 d 6988 7049', 17913 'STATE 3 m 6072 6108', 17914 'STATE 6 l 7051 7050', 17915 'STATE 6 s 6072 7052', 17916 'STATE 3 m 6077 6069', 17917 'STATE 6 i 6107 6072', 17918 'STATE 5 z 6072 7053', 17919 'STATE 3 m 6076 7054', 17920 'STATE 2 o 6108 6107', 17921 'STATE 3 m 6107 7055', 17922 'STATE 6 n 7056 6107', 17923 'STATE 2 q 6077 7057', 17924 'STATE 6 p 6077 7058', 17925 'STATE 2 e 6107 7059', 17926 'STATE 6 r 6072 7060', 17927 'STATE 6 r 6107 7061', 17928 'STATE 6 z 6076 7062', 17929 'STATE 4 c 6107 6077', 17930 'STATE 6 m 6072 7063', 17931 'STATE 2 a 6108 7064', 17932 'STATE 3 l 7066 7065', 17933 'STATE 2 a 6108 7067', 17934 'STATE 3 d 6069 7068', 17935 'STATE 4 s 6077 7069', 17936 'STATE 4 d 6072 6077', 17937 'STATE 3 f 6072 6916', 17938 'STATE 2 e 6132 6072', 17939 'STATE 3 f 6072 7070', 17940 'STATE 6 n 7072 7071', 17941 'STATE 2 # 6077 7073', 17942 'STATE 2 0 7074 6069', 17943 'STATE 5 c 6076 7075', 17944 'STATE 2 i 6069 7076', 17945 'STATE 2 a 6107 7077', 17946 'STATE 4 x 6107 7078', 17947 'STATE 6 # 6076 7079', 17948 'STATE 2 s 6077 7080', 17949 'STATE 2 r 6108 7081', 17950 'STATE 5 r 6108 7082', 17951 'STATE 6 o 7084 7083', 17952 'STATE 2 n 6107 7085', 17953 'STATE 5 u 6108 6077', 17954 'STATE 3 u 7087 7086', 17955 'STATE 4 s 7089 7088', 17956 'STATE 4 s 6072 7090', 17957 'STATE 6 t 6108 6907', 17958 'STATE 3 d 6107 7091', 17959 'STATE 6 m 6077 6107', 17960 'STATE 2 o 6107 7092', 17961 'STATE 2 l 7094 7093', 17962 'STATE 2 a 7096 7095', 17963 'STATE 4 t 6108 7097', 17964 'STATE 2 a 6108 7098', 17965 'STATE 3 d 7100 7099', 17966 'STATE 6 e 7102 7101', 17967 'STATE 3 m 6077 7103', 17968 'STATE 6 e 6077 6069', 17969 'STATE 5 l 6069 6077', 17970 'STATE 4 q 6501 7104', 17971 'STATE 6 # 6072 7105', 17972 'STATE 3 p 6072 7106', 17973 'STATE 3 f 7108 7107', 17974 'STATE 3 v 6072 7109', 17975 'STATE 4 h 6108 7110', 17976 'STATE 4 d 6072 7111', 17977 'STATE 3 r 6107 6773', 17978 'STATE 2 e 6107 7112', 17979 'STATE 2 i 6108 6107', 17980 'STATE 3 l 6077 7113', 17981 'STATE 6 o 6077 7114', 17982 'STATE 3 l 6107 6108', 17983 'STATE 3 d 6107 7115', 17984 'STATE 3 p 6107 6069', 17985 'STATE 6 m 7117 7116', 17986 'STATE 2 e 6072 6107', 17987 'STATE 3 r 6072 7118', 17988 'STATE 3 u 6086 6132', 17989 'STATE 2 l 6077 6076', 17990 'STATE 4 d 6072 7119', 17991 'STATE 3 h 6069 7120', 17992 'STATE 6 l 7122 7121', 17993 'STATE 2 e 6076 7123', 17994 'STATE 2 # 6072 7124', 17995 'STATE 3 g 6077 7125', 17996 'STATE 2 e 6077 7126', 17997 'STATE 5 n 6069 7127', 17998 'STATE 3 p 6076 7128', 17999 'STATE 2 n 6069 7129', 18000 'STATE 3 t 6107 7130', 18001 'STATE 4 n 7132 7131', 18002 'STATE 6 e 7134 7133', 18003 'STATE 3 u 6077 7135', 18004 'STATE 3 l 6076 6077', 18005 'STATE 5 s 7137 7136', 18006 'STATE 6 a 6161 7138', 18007 'STATE 3 s 6069 6077', 18008 'STATE 2 r 6107 7139', 18009 'STATE 4 v 7141 7140', 18010 'STATE 2 g 6072 7142', 18011 'STATE 6 u 6108 7143', 18012 'STATE 2 p 6077 6108', 18013 'STATE 4 m 6076 6108', 18014 'STATE 6 e 6107 7144', 18015 'STATE 2 i 6107 7145', 18016 'STATE 4 y 6108 7146', 18017 'STATE 3 l 6108 6069', 18018 'STATE 3 r 6108 7147', 18019 'STATE 4 t 6108 6069', 18020 'STATE 3 m 6108 6072', 18021 'STATE 3 m 6108 7148', 18022 'STATE 4 z 7150 7149', 18023 'STATE 4 f 7151 6077', 18024 'STATE 3 d 7152 6077', 18025 'STATE 4 n 6077 7153', 18026 'STATE 6 i 7155 7154', 18027 'STATE 4 s 6077 7156', 18028 'STATE 6 l 6077 7157', 18029 'STATE 3 k 7159 7158', 18030 'STATE 3 c 6077 7160', 18031 'STATE 6 n 6108 6077', 18032 'STATE 4 v 6072 7161', 18033 'STATE 4 l 6069 6077', 18034 'STATE 5 i 6076 7162', 18035 'STATE 6 s 6107 7163', 18036 'STATE 6 i 6077 7164', 18037 'STATE 6 t 6077 6072', 18038 'STATE 3 p 6107 6077', 18039 'STATE 6 e 6108 7165', 18040 'STATE 4 d 6108 7166', 18041 'STATE 4 s 6072 7167', 18042 'STATE 2 p 6072 7168', 18043 'STATE 2 a 6069 7169', 18044 'STATE 3 v 6077 7170', 18045 'STATE 3 f 6108 6077', 18046 'STATE 3 m 6108 7171', 18047 'STATE 6 d 6072 6077', 18048 'STATE 3 r 6077 6072', 18049 'STATE 3 r 6072 6077', 18050 'STATE 6 o 6069 6072', 18051 'STATE 2 n 6076 7172', 18052 'STATE 2 s 7173 6069', 18053 'STATE 2 l 6107 7174', 18054 'STATE 3 u 7176 7175', 18055 'STATE 5 k 6077 7177', 18056 'STATE 6 z 6108 7178', 18057 'STATE 4 v 6107 7179', 18058 'STATE 4 d 6077 7180', 18059 'STATE 5 m 6077 7181', 18060 'STATE 6 # 6077 6107', 18061 'STATE 2 n 6077 7182', 18062 'STATE 2 i 6107 7183', 18063 'STATE 2 c 6072 7184', 18064 'STATE 3 g 6077 6072', 18065 'STATE 4 s 6086 6108', 18066 'STATE 4 m 7186 7185', 18067 'STATE 6 i 6107 7187', 18068 'STATE 3 n 6077 7188', 18069 'STATE 2 c 7190 7189', 18070 'STATE 2 n 6108 7191', 18071 'STATE 3 g 6108 7192', 18072 'STATE 5 h 7194 7193', 18073 'STATE 3 p 6069 6077', 18074 'STATE 6 u 6108 6077', 18075 'STATE 4 s 6077 6108', 18076 'STATE 4 s 6077 7195', 18077 'STATE 6 a 6132 7196', 18078 'STATE 4 b 6072 6077', 18079 'STATE 6 r 6077 7197', 18080 'STATE 6 a 6077 7198', 18081 'STATE 6 n 6077 7199', 18082 'STATE 4 l 6077 6108', 18083 'STATE 4 t 7201 7200', 18084 'STATE 3 f 6072 6077', 18085 'STATE 5 o 6108 7202', 18086 'STATE 2 o 6107 6077', 18087 'STATE 2 k 6077 7203', 18088 'STATE 2 a 6108 7204', 18089 'STATE 4 c 6108 6072', 18090 'STATE 2 s 6072 7205', 18091 'STATE 4 n 6072 7206', 18092 'STATE 3 p 6069 7207', 18093 'STATE 3 p 6077 7208', 18094 'STATE 3 u 6072 7209', 18095 'STATE 2 m 6076 7210', 18096 'STATE 3 h 6069 6072', 18097 'STATE 3 v 6107 7211', 18098 'STATE 5 m 7213 7212', 18099 'STATE 2 q 7215 7214', 18100 'STATE 6 k 6077 7216', 18101 'STATE 6 o 7218 7217', 18102 'STATE 4 f 6108 7219', 18103 'STATE 2 a 6077 7220', 18104 'STATE 6 b 6108 7221', 18105 'STATE 3 s 6072 7222', 18106 'STATE 2 l 6107 7223', 18107 'STATE 4 f 6069 7224', 18108 'STATE 3 u 7226 7225', 18109 'STATE 6 t 6069 6108', 18110 'STATE 3 l 6077 6107', 18111 'STATE 3 t 6077 7227', 18112 'STATE 3 l 6108 7228', 18113 'STATE 3 l 6077 6108', 18114 'STATE 2 e 6108 7229', 18115 'STATE 3 n 6108 7230', 18116 'STATE 5 y 6550 7231', 18117 'STATE 3 n 6069 7232', 18118 'STATE 3 t 6072 7233', 18119 'STATE 4 t 6072 7234', 18120 'STATE 6 c 6108 6077', 18121 'STATE 3 k 6077 7235', 18122 'STATE 6 t 6077 7236', 18123 'STATE 4 j 6072 7237', 18124 'STATE 3 t 6072 6069', 18125 'STATE 6 n 6072 7238', 18126 'STATE 2 c 6077 7239', 18127 'STATE 4 n 7241 7240', 18128 'STATE 3 w 6072 7242', 18129 'STATE 3 f 6072 7243', 18130 'STATE 3 r 6076 7201', 18131 'STATE 4 m 6077 7244', 18132 'STATE 2 c 6076 7245', 18133 'STATE 3 h 6076 7246', 18134 'STATE 2 r 6107 7247', 18135 'STATE 3 h 7249 7248', 18136 'STATE 6 a 7250 6077', 18137 'STATE 4 t 7252 7251', 18138 'STATE 5 t 6077 7253', 18139 'STATE 2 u 7255 7254', 18140 'STATE 6 t 7257 7256', 18141 'STATE 4 t 6077 7258', 18142 'STATE 4 t 6108 7259', 18143 'STATE 3 w 6077 7260', 18144 'STATE 6 o 6077 7261', 18145 'STATE 3 l 6072 6077', 18146 'STATE 2 h 6107 7262', 18147 'STATE 2 w 6072 7263', 18148 'STATE 3 h 7265 7264', 18149 'STATE 4 n 6108 6086', 18150 'STATE 2 e 6077 7266', 18151 'STATE 4 s 6077 7267', 18152 'STATE 4 d 6108 7268', 18153 'STATE 4 p 6108 7269', 18154 'STATE 6 a 6077 7270', 18155 'STATE 4 s 6077 7271', 18156 'STATE 3 r 6072 7272', 18157 'STATE 4 b 6108 6077', 18158 'STATE 3 h 6077 7273', 18159 'STATE 3 w 6077 7274', 18160 'STATE 3 w 6072 7275', 18161 'STATE 5 a 6072 7276', 18162 'STATE 2 s 6077 6442', 18163 'STATE 2 i 7096 7277', 18164 'STATE 6 l 7279 7278', 18165 'STATE 4 c 6108 7280', 18166 'STATE 3 h 6108 7166', 18167 'STATE 3 c 6077 7281', 18168 'STATE 2 r 6076 7282', 18169 'STATE 2 h 6076 7283', 18170 'STATE 2 p 6107 7284', 18171 'STATE 4 q 7286 7285', 18172 'STATE 5 u 6108 7287', 18173 'STATE 2 a 6108 6077', 18174 'STATE 2 o 6069 7288', 18175 'STATE 2 c 6108 6086', 18176 'STATE 4 p 6077 7289', 18177 'STATE 3 u 7291 7290', 18178 'STATE 3 n 6077 7292', 18179 'STATE 6 a 7294 7293', 18180 'STATE 3 b 6077 7295', 18181 'STATE 4 s 6077 7296', 18182 'STATE 3 c 6077 7297', 18183 'STATE 6 # 6072 7298', 18184 'STATE 3 f 6077 7299', 18185 'STATE 3 s 6107 7300', 18186 'STATE 4 s 6072 7301', 18187 'STATE 2 t 6072 7302', 18188 'STATE 4 z 6072 6077', 18189 'STATE 3 r 7303 6107', 18190 'STATE 3 m 6108 7304', 18191 'STATE 2 p 6108 7305', 18192 'STATE 2 i 6072 7306', 18193 'STATE 6 o 6077 7307', 18194 'STATE 3 s 6072 7308', 18195 'STATE 3 s 6072 7155', 18196 'STATE 6 b 6077 7309', 18197 'STATE 4 n 6069 7310', 18198 'STATE 3 s 6072 7311', 18199 'STATE 6 a 6072 7312', 18200 'STATE 3 u 7314 7313', 18201 'STATE 6 t 6108 7315', 18202 'STATE 3 t 6108 6069', 18203 'STATE 3 u 6072 7316', 18204 'STATE 4 n 7318 7317', 18205 'STATE 3 s 6076 7319', 18206 'STATE 6 d 7321 7320', 18207 'STATE 3 f 6077 6107', 18208 'STATE 3 g 7323 7322', 18209 'STATE 6 i 6077 6076', 18210 'STATE 4 d 6108 7324', 18211 'STATE 5 # 6108 7325', 18212 'STATE 5 l 6077 7326', 18213 'STATE 5 c 7328 7327', 18214 'STATE 2 q 6077 7329', 18215 'STATE 5 # 7330 6108', 18216 'STATE 4 v 7332 7331', 18217 'STATE 4 f 6108 7333', 18218 'STATE 3 t 6077 7334', 18219 'STATE 2 n 6069 7335', 18220 'STATE 3 t 6108 6855', 18221 'STATE 6 s 6072 7336', 18222 'STATE 5 u 6076 6077', 18223 'STATE 3 t 6107 7337', 18224 'STATE 3 f 6072 7338', 18225 'STATE 2 o 7340 7339', 18226 'STATE 2 u 6107 6077', 18227 'STATE 3 n 6108 7341', 18228 'STATE 2 u 6108 7342', 18229 'STATE 4 t 6072 6108', 18230 'STATE 5 v 6077 7343', 18231 'STATE 6 d 6108 6077', 18232 'STATE 3 l 6077 7344', 18233 'STATE 3 l 6077 7345', 18234 'STATE 6 n 6108 7346', 18235 'STATE 4 f 6072 7347', 18236 'STATE 2 p 6072 7348', 18237 'STATE 2 g 6072 6069', 18238 'STATE 2 r 6108 6077', 18239 'STATE 4 b 7350 7349', 18240 'STATE 3 h 6072 7351', 18241 'STATE 6 t 7353 7352', 18242 'STATE 2 i 6108 7354', 18243 'STATE 3 r 6076 7355', 18244 'STATE 2 l 6076 7356', 18245 'STATE 6 i 7358 7357', 18246 'STATE 2 c 6077 7359', 18247 'STATE 2 w 6077 7360', 18248 'STATE 2 g 6077 7361', 18249 'STATE 5 # 6077 7362', 18250 'STATE 2 a 7364 7363', 18251 'STATE 2 i 6108 7365', 18252 'STATE 5 s 6108 7366', 18253 'STATE 3 b 6077 7367', 18254 'STATE 4 b 6108 7368', 18255 'STATE 3 t 6107 7369', 18256 'STATE 3 b 6076 7370', 18257 'STATE 2 a 6077 7371', 18258 'STATE 2 s 6077 7372', 18259 'STATE 3 m 6072 7373', 18260 'STATE 2 d 6107 7374', 18261 'STATE 2 a 6108 7375', 18262 'STATE 4 b 6108 7376', 18263 'STATE 4 l 6072 6108', 18264 'STATE 3 r 7378 7377', 18265 'STATE 2 i 6108 7379', 18266 'STATE 3 m 7380 6077', 18267 'STATE 3 v 6077 7381', 18268 'STATE 6 f 6077 7382', 18269 'STATE 3 r 6072 6108', 18270 'STATE 4 t 7384 7383', 18271 'STATE 3 m 6069 7385', 18272 'STATE 3 h 6077 7386', 18273 'STATE 2 e 6077 6108', 18274 'STATE 4 d 7388 7387', 18275 'STATE 3 m 6072 7161', 18276 'STATE 3 n 6072 6077', 18277 'STATE 3 p 6072 7389', 18278 'STATE 6 s 6076 6069', 18279 'STATE 2 d 6076 7390', 18280 'STATE 2 i 7392 7391', 18281 'STATE 4 z 6076 7393', 18282 'STATE 6 i 6077 7394', 18283 'STATE 4 s 7395 6077', 18284 'STATE 5 s 6108 6790', 18285 'STATE 4 t 6108 6077', 18286 'STATE 2 p 6077 7396', 18287 'STATE 3 t 6108 7397', 18288 'STATE 2 e 6077 7398', 18289 'STATE 5 # 6108 6077', 18290 'STATE 3 l 6077 7399', 18291 'STATE 4 f 7401 7400', 18292 'STATE 6 l 6077 7402', 18293 'STATE 3 u 6076 7403', 18294 'STATE 4 v 6077 7404', 18295 'STATE 2 o 6077 7405', 18296 'STATE 2 e 6077 7406', 18297 'STATE 3 w 6077 6107', 18298 'STATE 2 i 6108 7407', 18299 'STATE 4 p 6077 7408', 18300 'STATE 3 t 6108 7409', 18301 'STATE 6 r 6108 7410', 18302 'STATE 3 t 6108 7411', 18303 'STATE 4 t 7412 6077', 18304 'STATE 6 i 6072 6077', 18305 'STATE 6 s 6108 6077', 18306 'STATE 4 l 6072 6076', 18307 'STATE 5 h 6076 6072', 18308 'STATE 4 k 6072 7413', 18309 'STATE 4 f 7415 7414', 18310 'STATE 4 c 7416 6077', 18311 'STATE 3 r 6108 6077', 18312 'STATE 3 e 6076 7417', 18313 'STATE 2 g 6076 7418', 18314 'STATE 2 a 7420 7419', 18315 'STATE 6 a 7422 7421', 18316 'STATE 5 t 6077 7423', 18317 'STATE 2 r 7424 6108', 18318 'STATE 2 t 6077 7425', 18319 'STATE 3 x 6108 7426', 18320 'STATE 6 o 6108 7427', 18321 'STATE 6 i 6077 7428', 18322 'STATE 3 p 7429 6077', 18323 'STATE 6 v 7431 7430', 18324 'STATE 2 n 6077 7432', 18325 'STATE 3 d 6107 6108', 18326 'STATE 2 i 6077 7433', 18327 'STATE 2 q 6108 7434', 18328 'STATE 2 e 6076 7435', 18329 'STATE 6 i 6072 7436', 18330 'STATE 2 l 6108 7437', 18331 'STATE 6 l 6108 7438', 18332 'STATE 2 u 6069 7439', 18333 'STATE 6 c 6077 6108', 18334 'STATE 4 n 6108 7440', 18335 'STATE 6 u 6069 6077', 18336 'STATE 2 n 6108 7441', 18337 'STATE 2 n 6077 7442', 18338 'STATE 2 o 6077 6108', 18339 'STATE 3 d 6077 6072', 18340 'STATE 2 t 6072 7443', 18341 'STATE 2 t 6076 7444', 18342 'STATE 6 e 7446 7445', 18343 'STATE 5 t 7448 7447', 18344 'STATE 5 c 6077 7449', 18345 'STATE 4 t 6107 7450', 18346 'STATE 3 c 7452 7451', 18347 'STATE 5 l 6077 6108', 18348 'STATE 2 c 6077 7089', 18349 'STATE 6 o 7454 7453', 18350 'STATE 3 r 6077 7455', 18351 'STATE 6 h 6077 7456', 18352 'PHONE ae1', 18353 'STATE 6 s 7458 7457', 18354 'STATE 4 t 6108 6072', 18355 'STATE 6 c 7459 6108', 18356 'STATE 3 d 6076 6077', 18357 'STATE 3 m 6077 7460', 18358 'STATE 4 l 6077 6076', 18359 'STATE 3 l 7462 7461', 18360 'STATE 3 d 6108 7463', 18361 'STATE 4 n 7465 7464', 18362 'STATE 6 v 6108 7466', 18363 'STATE 3 n 6108 7467', 18364 'STATE 4 t 7469 7468', 18365 'STATE 4 m 6077 7470', 18366 'STATE 2 p 6076 7471', 18367 'STATE 2 f 6069 6076', 18368 'STATE 5 z 7473 7472', 18369 'STATE 4 b 7475 7474', 18370 'STATE 4 s 7477 7476', 18371 'STATE 3 t 6077 7478', 18372 'STATE 5 t 7480 7479', 18373 'STATE 4 d 6077 7159', 18374 'STATE 2 l 7452 7481', 18375 'STATE 4 p 6108 6077', 18376 'STATE 2 g 6077 7482', 18377 'STATE 2 e 6108 7483', 18378 'STATE 3 m 6077 7484', 18379 'STATE 6 t 6077 7485', 18380 'STATE 4 t 7487 7486', 18381 'STATE 4 t 7489 7488', 18382 'STATE 3 c 7491 7490', 18383 'STATE 4 m 6077 7492', 18384 'STATE 2 g 6072 7493', 18385 'STATE 2 b 6072 6077', 18386 'STATE 2 r 6108 7494', 18387 'STATE 6 m 6077 7495', 18388 'STATE 6 i 6108 7496', 18389 'STATE 6 d 6077 7497', 18390 'STATE 3 l 6108 7096', 18391 'STATE 6 a 6108 7498', 18392 'STATE 6 c 6108 7499', 18393 'STATE 4 p 6108 7500', 18394 'STATE 2 n 6076 6072', 18395 'STATE 5 u 7502 7501', 18396 'STATE 6 o 6076 6077', 18397 'STATE 3 t 7504 7503', 18398 'STATE 5 l 6108 6077', 18399 'STATE 5 # 7506 7505', 18400 'STATE 5 # 7508 7507', 18401 'STATE 6 s 6108 7509', 18402 'STATE 4 s 7511 7510', 18403 'STATE 3 n 6108 7512', 18404 'STATE 4 t 7514 7513', 18405 'STATE 2 e 7516 7515', 18406 'STATE 5 s 7190 6077', 18407 'STATE 3 b 6077 6916', 18408 'STATE 3 r 6077 7517', 18409 'STATE 4 h 6069 7518', 18410 'STATE 2 e 6077 7410', 18411 'STATE 4 n 7520 7519', 18412 'STATE 2 e 6076 6072', 18413 'STATE 2 g 6077 6108', 18414 'STATE 2 a 6077 6108', 18415 'STATE 4 p 6077 7521', 18416 'STATE 3 r 6077 7522', 18417 'STATE 4 k 6072 7523', 18418 'STATE 2 a 6108 7524', 18419 'STATE 6 v 6108 7250', 18420 'STATE 3 v 6077 7525', 18421 'STATE 2 o 6076 7526', 18422 'STATE 2 s 6072 6108', 18423 'STATE 2 r 6072 7527', 18424 'STATE 2 o 7529 7528', 18425 'STATE 4 t 6108 7530', 18426 'STATE 3 v 6077 7531', 18427 'STATE 2 s 6077 7532', 18428 'STATE 4 b 6108 7533', 18429 'STATE 4 d 6108 7534', 18430 'STATE 3 r 7536 7535', 18431 'STATE 3 x 6108 6077', 18432 'STATE 3 v 6077 7537', 18433 'STATE 6 e 6108 7538', 18434 'STATE 3 n 6069 6108', 18435 'STATE 3 v 6077 6108', 18436 'STATE 3 m 6077 7539', 18437 'STATE 5 r 6076 6077', 18438 'STATE 3 l 6077 7540', 18439 'STATE 3 m 6077 7541', 18440 'STATE 2 n 6077 6108', 18441 'STATE 3 r 6077 7542', 18442 'STATE 4 l 6108 7543', 18443 'STATE 2 d 6077 7544', 18444 'STATE 3 l 6108 7545', 18445 'STATE 2 n 6077 7546', 18446 'STATE 3 l 6072 7547', 18447 'STATE 3 p 6108 7548', 18448 'STATE 2 r 6108 7549', 18449 'STATE 4 s 6077 7550', 18450 'STATE 2 l 6108 7551', 18451 'STATE 6 h 7553 7552', 18452 'STATE 5 t 7555 7554', 18453 'STATE 4 f 6108 7556', 18454 'STATE 5 l 7558 7557', 18455 'STATE 4 t 6072 7559', 18456 'STATE 4 d 6108 7560', 18457 'STATE 4 l 6108 7561', 18458 'STATE 3 t 6108 7562', 18459 'STATE 5 s 6077 6108', 18460 'STATE 3 r 7563 6108', 18461 'STATE 4 b 6108 7564', 18462 'STATE 4 s 7565 6077', 18463 'STATE 3 k 7567 7566', 18464 'STATE 6 u 6077 7568', 18465 'STATE 4 d 6077 7569', 18466 'STATE 4 m 6108 6069', 18467 'STATE 3 f 6077 6818', 18468 'STATE 2 e 7122 6077', 18469 'STATE 6 r 6077 7570', 18470 'STATE 2 o 6108 7571', 18471 'STATE 6 n 6108 7572', 18472 'STATE 4 n 6077 7573', 18473 'STATE 2 s 6077 7574', 18474 'STATE 3 l 6072 7575', 18475 'STATE 5 r 7577 7576', 18476 'STATE 5 c 6077 7536', 18477 'STATE 3 s 6108 7578', 18478 'STATE 4 s 6108 6077', 18479 'STATE 6 s 6108 7579', 18480 'STATE 5 r 6108 7580', 18481 'STATE 4 l 6077 7581', 18482 'STATE 4 l 6077 7582', 18483 'STATE 6 d 6108 7583', 18484 'STATE 4 t 6108 6076', 18485 'STATE 6 a 6077 6107', 18486 'STATE 6 o 6077 6108', 18487 'STATE 5 s 6108 7584', 18488 'STATE 2 c 6077 7585', 18489 'STATE 5 # 7587 7586', 18490 'STATE 2 c 7366 6077', 18491 'STATE 3 d 6077 7588', 18492 'STATE 6 l 7590 7589', 18493 'STATE 6 e 6077 6072', 18494 'STATE 3 n 6072 7591', 18495 'STATE 3 t 6069 7592', 18496 'STATE 2 s 6108 7593', 18497 'STATE 3 r 7595 7594', 18498 'STATE 4 n 6077 6072', 18499 'STATE 2 e 7597 7596', 18500 'STATE 6 o 7598 6108', 18501 'STATE 4 d 6108 7599', 18502 'STATE 2 t 6077 7600', 18503 'STATE 2 l 6108 7601', 18504 'STATE 3 r 7013 7602', 18505 'STATE 5 l 6108 6069', 18506 'STATE 3 c 6108 7603', 18507 'STATE 6 # 6077 7604', 18508 'STATE 5 k 6077 6902', 18509 'STATE 5 f 6108 7605', 18510 'STATE 3 t 7607 7606', 18511 'STATE 3 n 6077 7608', 18512 'STATE 6 b 6077 7609', 18513 'STATE 3 s 6077 6069', 18514 'STATE 4 l 6072 7610', 18515 'STATE 3 r 6108 7611', 18516 'STATE 3 h 6077 6108', 18517 'STATE 2 l 6108 7612', 18518 'STATE 4 c 6108 7613', 18519 'STATE 4 d 7615 7614', 18520 'STATE 3 l 7617 7616', 18521 'STATE 4 p 6077 6108', 18522 'STATE 5 c 6108 7618', 18523 'STATE 2 s 6077 6108', 18524 'STATE 2 u 6108 7619', 18525 'STATE 4 p 6108 6132', 18526 'STATE 4 t 7621 7620', 18527 'STATE 5 p 6077 6108', 18528 'STATE 6 e 6077 7622', 18529 'STATE 3 d 6077 7623', 18530 'STATE 2 t 6077 7624', 18531 'STATE 3 l 6077 7625', 18532 'STATE 3 h 6077 7626', 18533 'STATE 3 c 6072 7627', 18534 'STATE 6 w 6077 6069', 18535 'STATE 3 h 6108 7628', 18536 'STATE 6 t 6108 6077', 18537 'STATE 4 s 7630 7629', 18538 'STATE 5 t 6077 7631', 18539 'STATE 6 r 6108 7632', 18540 'STATE 4 s 7633 6077', 18541 'STATE 3 f 6077 7634', 18542 'STATE 4 m 6077 7635', 18543 'STATE 3 x 6108 7636', 18544 'STATE 5 c 6077 7637', 18545 'STATE 5 s 6077 7638', 18546 'STATE 3 p 6077 7639', 18547 'STATE 2 s 6077 7517', 18548 'STATE 6 e 6108 6077', 18549 'STATE 4 l 7410 7640', 18550 'STATE 3 r 6072 7641', 18551 'STATE 2 e 6108 7166', 18552 'STATE 3 s 7643 7642', 18553 'STATE 3 r 7645 7644', 18554 'STATE 3 b 6077 7646', 18555 'STATE 5 # 7648 7647', 18556 'STATE 6 # 6108 7649', 18557 'STATE 3 t 6077 7650', 18558 'STATE 2 o 7652 7651', 18559 'STATE 6 # 7475 7653', 18560 'STATE 5 u 6077 7654', 18561 'STATE 5 n 6077 7655', 18562 'STATE 2 i 6902 7656', 18563 'STATE 2 n 6077 7657', 18564 'STATE 4 d 6108 6072', 18565 'STATE 2 r 7659 7658', 18566 'STATE 2 r 6077 6108', 18567 'STATE 5 # 7661 7660', 18568 'STATE 2 h 6077 7662', 18569 'STATE 2 r 6108 7663', 18570 'STATE 3 p 6077 7664', 18571 'STATE 4 l 6108 7665', 18572 'STATE 5 # 6077 6108', 18573 'STATE 3 l 7555 7666', 18574 'STATE 2 r 7388 7667', 18575 'STATE 5 t 6077 6108', 18576 'STATE 3 m 6077 7668', 18577 'STATE 5 z 6077 6108', 18578 'STATE 3 s 6077 7669', 18579 'STATE 2 y 6108 7670', 18580 'STATE 3 l 6077 7671', 18581 'STATE 2 c 6077 7672', 18582 'STATE 3 r 7652 7673', 18583 'STATE 3 t 7675 7674', 18584 'STATE 3 b 6077 7676', 18585 'STATE 5 c 6076 6077', 18586 'STATE 2 u 6108 7677', 18587 'STATE 3 d 7563 7678', 18588 'STATE 3 s 6108 7152', 18589 'STATE 3 d 6077 7679', 18590 'STATE 3 n 7555 6077', 18591 'STATE 6 l 6077 7159', 18592 'STATE 3 c 6077 7680', 18593 'STATE 2 r 6077 7681', 18594 'STATE 6 c 6077 7682', 18595 'STATE 2 u 7684 7683', 18596 'STATE 3 t 6076 7685', 18597 'STATE 3 n 6108 7686', 18598 'STATE 6 # 6108 7687', 18599 'STATE 2 l 6077 7688', 18600 'STATE 2 g 6077 7600', 18601 'STATE 3 n 6108 7689', 18602 'STATE 3 m 6108 7690', 18603 'STATE 2 n 6077 7691', 18604 'STATE 2 l 6077 7692', 18605 'STATE 3 m 6077 6108', 18606 'STATE 2 l 7452 7693', 18607 'STATE 5 # 7695 7694', 18608 'STATE 3 n 6108 7696', 18609 'STATE 6 o 7698 7697', 18610 'STATE 6 s 6108 6069', 18611 'STATE 2 y 6108 7699', 18612 'STATE 5 t 7701 7700', 18613 'STATE 4 t 6077 7702', 18614 'STATE 6 a 6108 6077', 18615 'STATE 3 b 7704 7703', 18616 'STATE 4 l 7706 7705', 18617 'STATE 6 # 6108 6077', 18618 'STATE 4 t 6077 6108', 18619 'STATE 4 t 7707 6077', 18620 'STATE 3 w 6077 7708', 18621 'STATE 5 c 6077 6108', 18622 'STATE 2 r 6077 7709', 18623 'STATE 3 r 7424 7710', 18624 'STATE 3 t 6108 7711', 18625 'STATE 3 b 6108 6077', 18626 'STATE 3 n 6077 7712', 18627 'STATE 2 o 6108 7713', 18628 'STATE 3 t 7714 6077', 18629 'STATE 3 c 7716 7715', 18630 'STATE 3 m 6108 6077', 18631 'STATE 3 s 6077 7717', 18632 'STATE 3 d 6077 7718', 18633 'STATE 6 a 6108 7719', 18634 'STATE 3 s 6077 7720', 18635 'STATE 2 n 7721 6077', 18636 'STATE 2 b 6108 6077', 18637 'STATE 2 n 6108 6077', 18638 'STATE 3 k 6077 7722', 18639 'STATE 2 s 6108 7424', 18640 'STATE 3 k 6077 7723', 18641 'STATE 3 t 7725 7724', 18642 'STATE 3 v 6108 6077', 18643 'STATE 3 x 6077 7726', 18644 'STATE 3 g 6077 6108', 18645 'STATE 2 b 6108 7727', 18646 'STATE 3 p 6077 7728', 18647 'STATE 2 u 6077 7729', 18648 'STATE 2 n 6077 7730', 18649 'STATE 4 s 6902 6077', 18650 'STATE 5 l 7732 7731', 18651 'STATE 6 s 6108 7733', 18652 'STATE 3 n 6077 7734', 18653 'STATE 2 t 6077 6108', 18654 'STATE 3 t 6077 7735', 18655 'STATE 3 b 6077 7736', 18656 'STATE 3 l 6077 7737', 18657 'STATE 3 s 6077 7190', 18658 'STATE 5 t 6108 6077', 18659 'STATE 2 s 7738 6077', 18660 'STATE 3 f 6108 7739', 18661 'STATE 3 t 7691 6077', 18662 'STATE 2 n 7740 6934', 18663 'STATE 6 r 6108 6077', 18664 'INDEX 7741 j', 18665 'STATE 3 # 7743 7742', 18666 'STATE 4 a 7745 7744', 18667 'PHONE jh', 18668 'STATE 3 n 7743 7746', 18669 'STATE 3 o 7748 7747', 18670 'STATE 3 d 7743 7749', 18671 'STATE 3 a 7743 7750', 18672 'PHONE y', 18673 'STATE 4 i 7743 7751', 18674 'STATE 3 e 7748 7752', 18675 'STATE 4 o 7754 7753', 18676 'STATE 3 u 7748 7743', 18677 'STATE 4 e 7743 7755', 18678 'STATE 3 s 7757 7756', 18679 'STATE 4 u 7743 7758', 18680 'STATE 3 b 7748 7743', 18681 'PHONE epsilon', 18682 'STATE 3 o 7757 7759', 18683 'STATE 4 k 7757 7760', 18684 'STATE 4 d 7757 7761', 18685 'STATE 3 e 7757 7743', 18686 'INDEX 7762 k', 18687 'STATE 4 n 7764 7763', 18688 'STATE 4 k 7766 7765', 18689 'STATE 1 0 7766 7767', 18690 'PHONE k', 18691 'PHONE epsilon', 18692 'STATE 1 n 7766 7765', 18693 'INDEX 7768 l', 18694 'STATE 4 l 7770 7769', 18695 'STATE 4 e 7772 7771', 18696 'STATE 5 # 7774 7773', 18697 'STATE 6 g 7776 7775', 18698 'STATE 3 b 7778 7777', 18699 'STATE 6 # 7774 7779', 18700 'PHONE epsilon', 18701 'STATE 4 k 7781 7780', 18702 'STATE 4 i 7783 7782', 18703 'STATE 5 # 7785 7784', 18704 'STATE 5 # 7787 7786', 18705 'STATE 2 t 7774 7788', 18706 'STATE 3 l 7790 7789', 18707 'STATE 3 a 7792 7791', 18708 'PHONE l', 18709 'STATE 3 l 7782 7793', 18710 'STATE 3 t 7795 7794', 18711 'STATE 3 l 7782 7796', 18712 'STATE 2 # 7782 7797', 18713 'PHONE ax-l', 18714 'STATE 6 k 7774 7798', 18715 'STATE 4 m 7800 7799', 18716 'STATE 6 0 7782 7801', 18717 'STATE 3 o 7802 7782', 18718 'STATE 2 w 7774 7803', 18719 'STATE 3 b 7787 7804', 18720 'STATE 6 # 7806 7805', 18721 'STATE 5 y 7782 7807', 18722 'STATE 3 a 7782 7808', 18723 'STATE 5 s 7787 7809', 18724 'STATE 3 a 7774 7810', 18725 'STATE 4 # 7812 7811', 18726 'STATE 3 a 7814 7813', 18727 'STATE 4 u 7815 7782', 18728 'STATE 2 f 7774 7816', 18729 'STATE 2 t 7774 7817', 18730 'STATE 3 g 7787 7818', 18731 'STATE 3 d 7820 7819', 18732 'STATE 5 y 7782 7821', 18733 'STATE 6 s 7782 7822', 18734 'STATE 3 i 7782 7823', 18735 'STATE 5 d 7787 7824', 18736 'STATE 6 l 7825 7774', 18737 'STATE 3 u 7827 7826', 18738 'STATE 3 d 7787 7828', 18739 'STATE 3 o 7829 7782', 18740 'STATE 5 # 7774 7830', 18741 'STATE 2 e 7831 7782', 18742 'STATE 5 # 7774 7782', 18743 'STATE 5 # 7774 7832', 18744 'STATE 3 t 7834 7833', 18745 'STATE 3 g 7836 7835', 18746 'STATE 6 s 7782 7837', 18747 'STATE 3 l 7782 7838', 18748 'STATE 5 r 7840 7839', 18749 'STATE 3 o 7782 7841', 18750 'STATE 5 y 7782 7842', 18751 'STATE 2 c 7782 7774', 18752 'STATE 4 f 7844 7843', 18753 'STATE 5 # 7845 7782', 18754 'STATE 3 t 7787 7846', 18755 'STATE 2 c 7774 7782', 18756 'STATE 5 a 7782 7847', 18757 'STATE 5 m 7782 7848', 18758 'STATE 5 a 7782 7849', 18759 'STATE 2 z 7787 7850', 18760 'STATE 2 r 7782 7851', 18761 'STATE 3 p 7853 7852', 18762 'STATE 2 # 7782 7854', 18763 'STATE 2 d 7787 7855', 18764 'STATE 3 i 7782 7856', 18765 'STATE 6 g 7782 7857', 18766 'STATE 2 i 7787 7858', 18767 'STATE 3 e 7782 7859', 18768 'STATE 2 a 7787 7860', 18769 'STATE 4 v 7862 7861', 18770 'STATE 2 h 7863 7782', 18771 'STATE 4 t 7864 7782', 18772 'STATE 3 g 7787 7865', 18773 'STATE 2 c 7774 7866', 18774 'STATE 5 l 7867 7782', 18775 'STATE 5 o 7782 7868', 18776 'STATE 3 p 7787 7869', 18777 'STATE 2 s 7782 7787', 18778 'STATE 3 k 7871 7870', 18779 'STATE 2 p 7873 7872', 18780 'STATE 5 c 7782 7874', 18781 'STATE 6 a 7787 7875', 18782 'STATE 3 a 7782 7876', 18783 'STATE 5 t 7782 7877', 18784 'STATE 2 s 7782 7878', 18785 'STATE 3 y 7782 7879', 18786 'STATE 2 u 7787 7880', 18787 'STATE 4 n 7829 7782', 18788 'STATE 3 a 7881 7782', 18789 'STATE 3 a 7774 7782', 18790 'STATE 2 a 7774 7782', 18791 'STATE 3 a 7782 7882', 18792 'STATE 2 b 7774 7881', 18793 'PHONE y', 18794 'STATE 2 f 7774 7883', 18795 'STATE 3 d 7885 7884', 18796 'STATE 3 z 7787 7782', 18797 'STATE 2 # 7782 7886', 18798 'STATE 5 c 7787 7782', 18799 'STATE 5 m 7782 7787', 18800 'STATE 6 s 7782 7887', 18801 'STATE 2 n 7787 7782', 18802 'STATE 3 e 7782 7888', 18803 'STATE 2 n 7787 7889', 18804 'STATE 2 u 7787 7782', 18805 'STATE 3 u 7782 7890', 18806 'STATE 6 s 7782 7891', 18807 'STATE 2 h 7774 7782', 18808 'STATE 3 e 7782 7892', 18809 'STATE 2 h 7774 7893', 18810 'STATE 3 f 7787 7894', 18811 'STATE 2 d 7787 7782', 18812 'STATE 6 s 7782 7895', 18813 'STATE 6 o 7787 7896', 18814 'STATE 3 o 7782 7897', 18815 'STATE 5 s 7787 7898', 18816 'STATE 3 r 7900 7899', 18817 'STATE 5 t 7782 7901', 18818 'STATE 3 i 7782 7902', 18819 'STATE 2 b 7774 7782', 18820 'STATE 3 s 7782 7903', 18821 'STATE 5 b 7787 7782', 18822 'STATE 6 a 7787 7904', 18823 'STATE 5 s 7906 7905', 18824 'STATE 5 d 7787 7907', 18825 'STATE 3 w 7782 7908', 18826 'STATE 2 a 7782 7787', 18827 'STATE 2 m 7782 7909', 18828 'STATE 2 c 7911 7910', 18829 'STATE 3 c 7912 7782', 18830 'STATE 6 e 7787 7913', 18831 'STATE 5 d 7915 7914', 18832 'STATE 3 y 7782 7916', 18833 'STATE 5 m 7787 7917', 18834 'STATE 3 s 7918 7787', 18835 'STATE 5 m 7782 7919', 18836 'STATE 3 u 7782 7920', 18837 'STATE 3 h 7787 7782', 18838 'STATE 2 # 7782 7787', 18839 'STATE 2 n 7782 7787', 18840 'STATE 5 r 7921 7782', 18841 'STATE 3 u 7782 7922', 18842 'STATE 3 u 7782 7923', 18843 'STATE 5 b 7787 7924', 18844 'STATE 2 i 7782 7787', 18845 'STATE 2 b 7782 7925', 18846 'STATE 3 o 7782 7926', 18847 'STATE 3 s 7851 7927', 18848 'STATE 3 w 7782 7928', 18849 'STATE 3 r 7782 7929', 18850 'STATE 6 e 7787 7930', 18851 'STATE 5 r 7787 7782', 18852 'STATE 3 h 7782 7931', 18853 'STATE 3 g 7933 7932', 18854 'STATE 3 r 7782 7934', 18855 'STATE 3 w 7782 7787', 18856 'STATE 2 t 7787 7782', 18857 'STATE 3 r 7782 7935', 18858 'STATE 3 d 7937 7936', 18859 'STATE 2 a 7782 7938', 18860 'STATE 2 n 7787 7939', 18861 'STATE 3 y 7782 7929', 18862 'STATE 2 c 7911 7940', 18863 'STATE 2 n 7782 7941', 18864 'STATE 2 e 7782 7942', 18865 'STATE 3 d 7787 7943', 18866 'STATE 3 f 7945 7944', 18867 'STATE 2 d 7782 7787', 18868 'STATE 2 n 7787 7946', 18869 'STATE 3 k 7787 7947', 18870 'STATE 3 p 7948 7782', 18871 'STATE 2 f 7782 7787', 18872 'STATE 2 i 7787 7782', 18873 'STATE 3 g 7787 7949', 18874 'STATE 2 p 7782 7787', 18875 'STATE 2 f 7787 7950', 18876 'STATE 2 z 7787 7951', 18877 'STATE 3 p 7787 7952', 18878 'STATE 3 c 7787 7782', 18879 'INDEX 7953 m', 18880 'STATE 4 m 7955 7954', 18881 'STATE 4 c 7957 7956', 18882 'PHONE epsilon', 18883 'STATE 3 s 7959 7958', 18884 'STATE 2 0 7961 7960', 18885 'STATE 4 l 7960 7962', 18886 'STATE 4 # 7964 7963', 18887 'PHONE m', 18888 'STATE 5 e 7966 7965', 18889 'STATE 3 h 7967 7960', 18890 'STATE 4 s 7964 7968', 18891 'PHONE ax-m', 18892 'STATE 5 i 7970 7969', 18893 'STATE 6 l 7970 7971', 18894 'STATE 2 t 7972 7960', 18895 'STATE 5 r 7973 7960', 18896 'PHONE m-ax', 18897 'PHONE m-ae1', 18898 'STATE 6 n 7970 7969', 18899 'STATE 6 0 7964 7960', 18900 'STATE 4 e 7974 7960', 18901 'STATE 2 e 7960 7964', 18902 'INDEX 7975 n', 18903 'STATE 4 g 7977 7976', 18904 'STATE 4 n 7979 7978', 18905 'STATE 5 # 7981 7980', 18906 'STATE 4 k 7983 7982', 18907 'STATE 2 m 7985 7984', 18908 'STATE 5 e 7987 7986', 18909 'PHONE ng', 18910 'STATE 4 c 7989 7988', 18911 'STATE 6 m 7991 7990', 18912 'STATE 6 s 7985 7992', 18913 'PHONE epsilon', 18914 'STATE 5 i 7994 7993', 18915 'STATE 6 r 7996 7995', 18916 'STATE 4 q 7998 7997', 18917 'STATE 5 t 7981 7999', 18918 'STATE 5 n 8001 8000', 18919 'PHONE n', 18920 'STATE 5 i 7985 8002', 18921 'STATE 5 r 8004 8003', 18922 'STATE 2 # 7991 8005', 18923 'STATE 6 # 7991 8006', 18924 'STATE 2 s 7991 8007', 18925 'STATE 4 x 7981 7991', 18926 'STATE 2 # 7991 8008', 18927 'STATE 5 k 7981 8009', 18928 'STATE 6 y 7981 8010', 18929 'STATE 2 # 7991 7981', 18930 'STATE 2 y 7985 8011', 18931 'STATE 6 g 7991 8012', 18932 'STATE 6 a 7991 8013', 18933 'STATE 6 b 7991 8014', 18934 'STATE 6 s 7991 8015', 18935 'STATE 2 r 7981 8016', 18936 'STATE 6 e 7981 7991', 18937 'STATE 5 e 7991 8017', 18938 'STATE 5 i 7981 8018', 18939 'STATE 2 # 7985 8019', 18940 'STATE 5 y 7991 7981', 18941 'STATE 6 o 7991 7981', 18942 'STATE 6 a 7991 8020', 18943 'STATE 2 l 8022 8021', 18944 'STATE 2 h 7981 8023', 18945 'STATE 5 # 7981 8024', 18946 'STATE 6 p 7991 7981', 18947 'STATE 2 i 7985 8025', 18948 'STATE 2 m 7981 8026', 18949 'STATE 6 l 8028 8027', 18950 'STATE 6 n 7981 8029', 18951 'STATE 2 n 7981 8030', 18952 'STATE 5 i 7991 8031', 18953 'STATE 2 b 8032 7985', 18954 'STATE 2 l 7981 8033', 18955 'STATE 6 o 7991 8034', 18956 'STATE 2 v 7991 7981', 18957 'STATE 6 l 7981 7991', 18958 'STATE 2 f 7981 8035', 18959 'STATE 5 y 7991 8036', 18960 'STATE 6 # 8037 7985', 18961 'STATE 2 b 7981 8038', 18962 'STATE 6 a 7991 8039', 18963 'STATE 2 w 7981 8040', 18964 'STATE 5 h 8042 8041', 18965 'STATE 5 e 7991 7985', 18966 'STATE 2 v 7981 8043', 18967 'STATE 2 t 7991 8044', 18968 'STATE 2 g 7991 7981', 18969 'STATE 6 # 8046 8045', 18970 'STATE 6 e 7991 8047', 18971 'STATE 6 n 8048 7991', 18972 'STATE 2 r 7991 8049', 18973 'STATE 6 l 8051 8050', 18974 'STATE 5 a 7981 8052', 18975 'STATE 2 s 7981 7991', 18976 'STATE 2 r 7981 7991', 18977 'STATE 6 m 7981 8053', 18978 'STATE 2 d 7981 8054', 18979 'STATE 5 a 7991 7981', 18980 'STATE 2 i 7991 8055', 18981 'STATE 6 d 7991 8056', 18982 'STATE 6 s 7991 8057', 18983 'STATE 2 r 7991 7981', 18984 'STATE 2 # 7991 8058', 18985 'STATE 2 r 8059 7991', 18986 'STATE 6 n 7981 7991', 18987 'STATE 6 i 7991 8060', 18988 'STATE 5 o 7981 7991', 18989 'INDEX 8061 o', 18990 'STATE 4 r 8063 8062', 18991 'STATE 4 # 8065 8064', 18992 'STATE 1 0 8067 8066', 18993 'STATE 3 o 8069 8068', 18994 'STATE 3 o 8071 8070', 18995 'STATE 1 # 8073 8072', 18996 'STATE 3 w 8075 8074', 18997 'STATE 4 o 8077 8076', 18998 'STATE 4 d 8079 8078', 18999 'STATE 3 a 8081 8080', 19000 'PHONE uw1', 19001 'STATE 5 # 8083 8082', 19002 'STATE 3 o 8085 8084', 19003 'STATE 3 c 8087 8086', 19004 'PHONE epsilon', 19005 'STATE 4 u 8089 8088', 19006 'STATE 3 c 8090 8075', 19007 'STATE 4 k 8092 8091', 19008 'STATE 2 l 8094 8093', 19009 'STATE 3 g 8096 8095', 19010 'PHONE aw1', 19011 'STATE 3 w 8098 8097', 19012 'STATE 3 c 8100 8099', 19013 'STATE 2 s 8100 8101', 19014 'STATE 2 d 8100 8102', 19015 'STATE 5 r 8104 8103', 19016 'STATE 5 r 8105 8100', 19017 'STATE 4 n 8107 8106', 19018 'STATE 5 s 8109 8108', 19019 'STATE 5 r 8096 8075', 19020 'STATE 2 f 8111 8110', 19021 'STATE 1 s 8113 8112', 19022 'STATE 2 f 8071 8114', 19023 'PHONE ah1', 19024 'STATE 3 d 8096 8115', 19025 'PHONE ow', 19026 'STATE 5 s 8117 8116', 19027 'STATE 2 a 8075 8118', 19028 'STATE 3 o 8120 8119', 19029 'PHONE ao1', 19030 'STATE 2 f 8122 8121', 19031 'STATE 2 c 8100 8120', 19032 'STATE 5 e 8124 8123', 19033 'STATE 6 o 8126 8125', 19034 'STATE 6 i 8100 8127', 19035 'STATE 4 w 8129 8128', 19036 'STATE 5 # 8131 8130', 19037 'STATE 5 r 8133 8132', 19038 'STATE 6 e 8135 8134', 19039 'STATE 2 w 8137 8136', 19040 'STATE 4 t 8120 8071', 19041 'STATE 1 b 8138 8120', 19042 'STATE 5 # 8120 8071', 19043 'STATE 2 w 8120 8139', 19044 'STATE 3 n 8096 8140', 19045 'STATE 5 e 8142 8141', 19046 'STATE 6 # 8075 8143', 19047 'STATE 2 s 8144 8075', 19048 'STATE 3 t 8075 8145', 19049 'PHONE uh1', 19050 'STATE 3 m 8075 8146', 19051 'STATE 3 i 8147 8100', 19052 'STATE 5 a 8149 8148', 19053 'STATE 3 n 8100 8150', 19054 'STATE 6 y 8100 8151', 19055 'STATE 3 b 8152 8100', 19056 'STATE 6 o 8075 8153', 19057 'STATE 4 i 8155 8154', 19058 'STATE 6 k 8100 8156', 19059 'STATE 3 i 8158 8157', 19060 'STATE 3 i 8160 8159', 19061 'STATE 5 g 8162 8161', 19062 'STATE 3 h 8164 8163', 19063 'STATE 1 0 8166 8165', 19064 'STATE 3 h 8081 8167', 19065 'STATE 2 c 8071 8168', 19066 'STATE 4 l 8120 8071', 19067 'STATE 6 # 8169 8120', 19068 'STATE 2 g 8120 8170', 19069 'STATE 2 l 8096 8171', 19070 'STATE 5 f 8173 8172', 19071 'STATE 3 m 8175 8174', 19072 'STATE 6 h 8075 8176', 19073 'STATE 5 t 8075 8100', 19074 'STATE 2 a 8177 8075', 19075 'STATE 2 p 8100 8178', 19076 'PHONE ao', 19077 'STATE 5 o 8180 8179', 19078 'STATE 6 i 8075 8181', 19079 'STATE 6 # 8100 8182', 19080 'STATE 6 e 8183 8100', 19081 'PHONE aa1', 19082 'STATE 6 a 8075 8184', 19083 'STATE 4 y 8186 8185', 19084 'STATE 5 s 8188 8187', 19085 'STATE 5 # 8190 8189', 19086 'STATE 5 e 8192 8191', 19087 'STATE 2 t 8160 8193', 19088 'STATE 3 s 8195 8194', 19089 'PHONE ax', 19090 'STATE 5 t 8197 8196', 19091 'STATE 2 o 8096 8198', 19092 'STATE 3 t 8120 8199', 19093 'STATE 1 0 8081 8200', 19094 'STATE 1 # 8201 8160', 19095 'STATE 6 s 8075 8202', 19096 'STATE 1 # 8081 8203', 19097 'STATE 1 # 8071 8204', 19098 'PHONE uh', 19099 'STATE 2 h 8120 8113', 19100 'STATE 3 t 8205 8096', 19101 'STATE 5 t 8207 8206', 19102 'STATE 3 d 8147 8075', 19103 'STATE 6 d 8209 8208', 19104 'STATE 6 # 8211 8210', 19105 'STATE 6 t 8212 8100', 19106 'STATE 3 d 8100 8075', 19107 'STATE 5 o 8075 8213', 19108 'STATE 6 g 8215 8214', 19109 'STATE 3 b 8075 8216', 19110 'STATE 3 m 8218 8217', 19111 'STATE 6 a 8100 8219', 19112 'STATE 3 f 8100 8220', 19113 'STATE 6 u 8075 8100', 19114 'STATE 5 e 8222 8221', 19115 'STATE 5 o 8224 8223', 19116 'STATE 6 g 8226 8225', 19117 'STATE 2 # 8228 8227', 19118 'STATE 5 n 8230 8229', 19119 'STATE 1 # 8232 8231', 19120 'STATE 5 g 8234 8233', 19121 'STATE 6 # 8236 8235', 19122 'STATE 5 e 8238 8237', 19123 'STATE 3 t 8160 8239', 19124 'STATE 1 a 8240 8160', 19125 'STATE 5 n 8242 8241', 19126 'STATE 2 0 8081 8243', 19127 'STATE 2 # 8245 8244', 19128 'STATE 6 t 8247 8246', 19129 'PHONE aw', 19130 'STATE 2 t 8081 8075', 19131 'STATE 3 c 8075 8248', 19132 'STATE 1 0 8081 8249', 19133 'STATE 5 h 8250 8071', 19134 'STATE 1 r 8096 8251', 19135 'STATE 5 m 8253 8252', 19136 'STATE 3 f 8255 8254', 19137 'STATE 6 t 8075 8256', 19138 'STATE 2 a 8075 8257', 19139 'STATE 6 d 8075 8147', 19140 'STATE 1 r 8147 8258', 19141 'STATE 2 n 8100 8147', 19142 'STATE 3 h 8100 8259', 19143 'STATE 6 o 8261 8260', 19144 'STATE 2 # 8100 8075', 19145 'STATE 3 d 8100 8262', 19146 'STATE 3 d 8147 8263', 19147 'STATE 6 n 8147 8264', 19148 'STATE 6 h 8100 8265', 19149 'STATE 3 t 8100 8266', 19150 'STATE 2 # 8268 8267', 19151 'STATE 4 v 8270 8269', 19152 'STATE 6 m 8096 8271', 19153 'STATE 3 t 8096 8272', 19154 'STATE 5 r 8274 8273', 19155 'STATE 3 d 8071 8275', 19156 'STATE 6 # 8277 8276', 19157 'STATE 3 l 8278 8272', 19158 'STATE 2 # 8280 8279', 19159 'STATE 3 d 8081 8281', 19160 'STATE 3 k 8283 8282', 19161 'STATE 3 l 8275 8284', 19162 'STATE 3 c 8286 8285', 19163 'STATE 3 c 8288 8287', 19164 'STATE 1 0 8290 8289', 19165 'STATE 3 g 8100 8291', 19166 'STATE 6 c 8152 8292', 19167 'STATE 6 # 8275 8293', 19168 'STATE 2 g 8160 8294', 19169 'STATE 2 i 8295 8160', 19170 'STATE 5 l 8297 8296', 19171 'STATE 3 y 8075 8298', 19172 'STATE 6 # 8081 8299', 19173 'STATE 1 # 8301 8300', 19174 'STATE 3 d 8303 8302', 19175 'STATE 6 # 8305 8304', 19176 'STATE 3 c 8100 8147', 19177 'STATE 3 h 8081 8306', 19178 'STATE 3 r 8081 8075', 19179 'STATE 4 t 8071 8075', 19180 'STATE 1 h 8275 8096', 19181 'STATE 3 f 8308 8307', 19182 'STATE 6 a 8309 8100', 19183 'STATE 6 u 8075 8310', 19184 'STATE 6 # 8075 8311', 19185 'STATE 6 l 8147 8312', 19186 'STATE 2 o 8075 8313', 19187 'STATE 2 r 8100 8147', 19188 'STATE 5 g 8100 8314', 19189 'STATE 5 t 8316 8315', 19190 'STATE 3 f 8318 8317', 19191 'STATE 6 n 8075 8319', 19192 'STATE 6 # 8100 8320', 19193 'STATE 6 l 8100 8075', 19194 'STATE 6 y 8100 8321', 19195 'STATE 3 b 8147 8100', 19196 'STATE 5 f 8323 8322', 19197 'STATE 4 m 8325 8324', 19198 'STATE 6 # 8327 8326', 19199 'STATE 2 0 8329 8328', 19200 'STATE 1 0 8272 8330', 19201 'PHONE oy1', 19202 'STATE 5 a 8332 8331', 19203 'STATE 1 0 8272 8277', 19204 'PHONE ow1', 19205 'STATE 3 l 8272 8333', 19206 'PHONE w', 19207 'PHONE oy', 19208 'STATE 1 # 8335 8334', 19209 'STATE 6 l 8337 8336', 19210 'STATE 3 t 8081 8338', 19211 'STATE 3 n 8096 8339', 19212 'STATE 1 a 8096 8200', 19213 'STATE 3 r 8275 8081', 19214 'STATE 1 0 8341 8340', 19215 'STATE 6 # 8343 8342', 19216 'STATE 1 0 8345 8344', 19217 'STATE 6 e 8160 8346', 19218 'STATE 1 # 8348 8347', 19219 'STATE 6 y 8350 8349', 19220 'STATE 3 d 8351 8275', 19221 'STATE 1 # 8160 8352', 19222 'STATE 6 t 8096 8160', 19223 'STATE 2 n 8354 8353', 19224 'PHONE aa', 19225 'STATE 5 d 8356 8355', 19226 'STATE 2 o 8160 8357', 19227 'STATE 1 l 8075 8358', 19228 'STATE 3 m 8360 8359', 19229 'STATE 2 r 8362 8361', 19230 'STATE 2 t 8100 8363', 19231 'STATE 3 c 8100 8364', 19232 'STATE 6 h 8275 8075', 19233 'STATE 3 j 8075 8365', 19234 'STATE 2 e 8169 8366', 19235 'STATE 6 t 8081 8075', 19236 'STATE 5 a 8368 8367', 19237 'STATE 6 # 8075 8369', 19238 'STATE 1 a 8100 8370', 19239 'STATE 1 r 8100 8371', 19240 'STATE 2 m 8075 8100', 19241 'STATE 2 l 8100 8372', 19242 'STATE 3 l 8100 8075', 19243 'STATE 3 l 8100 8373', 19244 'STATE 3 f 8375 8374', 19245 'STATE 6 r 8147 8376', 19246 'STATE 3 t 8147 8100', 19247 'STATE 5 g 8147 8100', 19248 'STATE 3 m 8075 8100', 19249 'STATE 2 # 8378 8377', 19250 'STATE 3 s 8100 8379', 19251 'STATE 4 a 8381 8380', 19252 'STATE 4 f 8383 8382', 19253 'STATE 4 e 8385 8384', 19254 'STATE 3 c 8387 8386', 19255 'STATE 1 0 8389 8388', 19256 'STATE 4 m 8390 8275', 19257 'STATE 3 r 8392 8391', 19258 'STATE 6 r 8275 8094', 19259 'STATE 3 u 8272 8393', 19260 'STATE 5 c 8395 8394', 19261 'STATE 6 # 8275 8096', 19262 'STATE 3 a 8081 8396', 19263 'STATE 6 t 8160 8397', 19264 'STATE 2 s 8275 8398', 19265 'STATE 3 h 8081 8399', 19266 'STATE 5 a 8200 8400', 19267 'STATE 1 # 8402 8401', 19268 'STATE 3 h 8404 8403', 19269 'STATE 6 c 8406 8405', 19270 'STATE 3 n 8408 8407', 19271 'STATE 5 a 8152 8409', 19272 'STATE 5 i 8275 8152', 19273 'STATE 1 # 8411 8410', 19274 'STATE 6 o 8413 8412', 19275 'STATE 6 r 8152 8160', 19276 'STATE 6 s 8415 8414', 19277 'STATE 2 l 8075 8416', 19278 'STATE 2 # 8418 8417', 19279 'STATE 3 h 8094 8419', 19280 'STATE 2 r 8275 8094', 19281 'STATE 2 s 8160 8420', 19282 'STATE 3 m 8160 8421', 19283 'STATE 3 d 8160 8422', 19284 'STATE 5 c 8424 8423', 19285 'STATE 3 b 8075 8425', 19286 'STATE 6 d 8275 8426', 19287 'STATE 6 # 8075 8427', 19288 'STATE 6 s 8081 8428', 19289 'STATE 1 0 8081 8160', 19290 'STATE 2 t 8100 8429', 19291 'STATE 1 u 8096 8200', 19292 'STATE 3 r 8081 8430', 19293 'STATE 3 r 8075 8431', 19294 'STATE 6 a 8075 8432', 19295 'STATE 1 0 8081 8433', 19296 'STATE 6 z 8075 8434', 19297 'STATE 6 # 8100 8435', 19298 'STATE 5 c 8100 8436', 19299 'STATE 2 r 8100 8437', 19300 'STATE 2 p 8100 8438', 19301 'STATE 3 f 8100 8439', 19302 'STATE 5 t 8100 8440', 19303 'STATE 6 z 8075 8441', 19304 'STATE 5 g 8443 8442', 19305 'STATE 6 e 8444 8100', 19306 'STATE 6 t 8100 8445', 19307 'STATE 3 l 8100 8446', 19308 'STATE 3 k 8100 8447', 19309 'STATE 5 # 8449 8448', 19310 'STATE 5 r 8100 8450', 19311 'STATE 3 k 8147 8451', 19312 'STATE 6 # 8453 8452', 19313 'STATE 4 a 8455 8454', 19314 'STATE 5 r 8100 8456', 19315 'STATE 5 a 8458 8457', 19316 'STATE 5 f 8094 8459', 19317 'STATE 4 m 8461 8460', 19318 'STATE 4 m 8463 8462', 19319 'STATE 3 s 8160 8464', 19320 'STATE 3 m 8071 8465', 19321 'STATE 2 p 8467 8466', 19322 'STATE 2 e 8469 8468', 19323 'STATE 6 c 8275 8470', 19324 'STATE 6 e 8272 8471', 19325 'STATE 1 o 8160 8472', 19326 'STATE 6 c 8160 8473', 19327 'STATE 3 n 8275 8474', 19328 'STATE 3 c 8081 8475', 19329 'STATE 5 e 8152 8081', 19330 'STATE 6 e 8275 8476', 19331 'STATE 3 r 8081 8275', 19332 'STATE 3 d 8096 8477', 19333 'STATE 2 c 8096 8275', 19334 'STATE 5 i 8479 8478', 19335 'STATE 5 i 8152 8096', 19336 'STATE 5 t 8481 8480', 19337 'STATE 5 t 8295 8482', 19338 'STATE 1 0 8484 8483', 19339 'STATE 6 # 8486 8485', 19340 'STATE 2 s 8094 8100', 19341 'STATE 6 a 8152 8487', 19342 'STATE 3 m 8152 8295', 19343 'STATE 6 l 8096 8488', 19344 'STATE 1 i 8096 8275', 19345 'STATE 2 e 8152 8275', 19346 'PHONE w-ah1', 19347 'STATE 3 n 8152 8489', 19348 'STATE 3 m 8094 8275', 19349 'STATE 6 # 8490 8160', 19350 'STATE 1 # 8152 8491', 19351 'STATE 1 i 8160 8492', 19352 'STATE 6 t 8494 8493', 19353 'STATE 3 t 8075 8495', 19354 'STATE 3 r 8081 8496', 19355 'STATE 6 t 8275 8497', 19356 'STATE 2 # 8081 8498', 19357 'STATE 1 # 8081 8499', 19358 'STATE 3 l 8200 8500', 19359 'STATE 2 s 8075 8081', 19360 'STATE 3 t 8075 8501', 19361 'STATE 6 i 8075 8502', 19362 'STATE 2 a 8100 8075', 19363 'STATE 3 u 8120 8503', 19364 'STATE 1 a 8505 8504', 19365 'STATE 6 a 8100 8506', 19366 'STATE 3 f 8075 8100', 19367 'STATE 3 t 8100 8507', 19368 'STATE 3 c 8100 8508', 19369 'STATE 5 n 8100 8509', 19370 'STATE 6 n 8100 8510', 19371 'STATE 5 b 8443 8100', 19372 'STATE 6 i 8075 8100', 19373 'STATE 2 # 8100 8147', 19374 'STATE 6 n 8147 8100', 19375 'STATE 3 f 8100 8511', 19376 'STATE 6 t 8147 8512', 19377 'STATE 5 a 8514 8513', 19378 'STATE 4 s 8516 8515', 19379 'STATE 2 b 8518 8517', 19380 'STATE 3 w 8169 8519', 19381 'STATE 6 s 8100 8520', 19382 'STATE 3 l 8147 8521', 19383 'STATE 5 a 8523 8522', 19384 'STATE 5 r 8100 8524', 19385 'STATE 6 r 8100 8525', 19386 'STATE 5 o 8527 8526', 19387 'STATE 3 w 8120 8528', 19388 'STATE 5 p 8530 8529', 19389 'STATE 4 k 8275 8531', 19390 'STATE 3 w 8533 8532', 19391 'STATE 4 s 8535 8534', 19392 'STATE 3 h 8275 8536', 19393 'STATE 3 c 8094 8275', 19394 'STATE 3 n 8538 8537', 19395 'STATE 1 # 8275 8539', 19396 'STATE 1 # 8540 8071', 19397 'STATE 5 # 8541 8272', 19398 'STATE 5 # 8542 8278', 19399 'STATE 1 h 8096 8543', 19400 'STATE 6 h 8096 8275', 19401 'STATE 6 e 8277 8096', 19402 'STATE 2 k 8545 8544', 19403 'STATE 2 p 8081 8546', 19404 'STATE 3 d 8081 8547', 19405 'STATE 3 r 8275 8548', 19406 'STATE 2 g 8275 8549', 19407 'STATE 2 f 8551 8550', 19408 'STATE 6 a 8275 8552', 19409 'STATE 5 a 8554 8553', 19410 'STATE 3 m 8556 8555', 19411 'STATE 5 a 8152 8557', 19412 'STATE 2 e 8559 8558', 19413 'STATE 6 e 8561 8560', 19414 'STATE 3 l 8100 8562', 19415 'STATE 3 r 8100 8563', 19416 'STATE 6 i 8096 8564', 19417 'STATE 3 p 8275 8565', 19418 'STATE 3 d 8152 8566', 19419 'STATE 5 s 8160 8275', 19420 'STATE 2 r 8568 8567', 19421 'STATE 1 o 8160 8569', 19422 'STATE 5 f 8571 8570', 19423 'STATE 5 e 8075 8081', 19424 'STATE 6 h 8081 8572', 19425 'STATE 3 l 8081 8573', 19426 'STATE 3 f 8081 8574', 19427 'STATE 3 r 8081 8575', 19428 'STATE 6 e 8573 8576', 19429 'STATE 2 b 8200 8577', 19430 'STATE 6 h 8579 8578', 19431 'STATE 3 b 8581 8580', 19432 'STATE 5 o 8583 8582', 19433 'STATE 6 t 8075 8584', 19434 'STATE 3 t 8096 8100', 19435 'STATE 5 g 8075 8585', 19436 'STATE 1 e 8586 8100', 19437 'STATE 2 n 8075 8587', 19438 'STATE 6 # 8100 8588', 19439 'STATE 3 k 8100 8589', 19440 'STATE 3 b 8100 8590', 19441 'STATE 3 m 8592 8591', 19442 'STATE 4 e 8594 8593', 19443 'STATE 6 # 8596 8595', 19444 'STATE 4 e 8598 8597', 19445 'STATE 1 o 8600 8599', 19446 'STATE 3 r 8602 8601', 19447 'STATE 5 d 8100 8275', 19448 'STATE 4 l 8604 8603', 19449 'STATE 1 # 8606 8605', 19450 'STATE 1 # 8100 8607', 19451 'STATE 4 l 8609 8608', 19452 'STATE 6 # 8275 8610', 19453 'STATE 6 u 8096 8275', 19454 'STATE 5 w 8152 8275', 19455 'STATE 5 i 8152 8611', 19456 'STATE 6 l 8160 8612', 19457 'STATE 6 l 8160 8613', 19458 'STATE 5 m 8615 8614', 19459 'STATE 6 a 8160 8616', 19460 'STATE 4 x 8152 8617', 19461 'STATE 6 t 8619 8618', 19462 'PHONE ih1', 19463 'STATE 6 r 8621 8620', 19464 'STATE 3 l 8152 8622', 19465 'STATE 3 s 8094 8623', 19466 'STATE 3 p 8152 8624', 19467 'STATE 6 l 8152 8625', 19468 'STATE 2 g 8275 8160', 19469 'STATE 6 n 8275 8071', 19470 'STATE 1 r 8278 8626', 19471 'STATE 3 r 8278 8272', 19472 'STATE 5 e 8277 8627', 19473 'STATE 3 p 8081 8628', 19474 'STATE 1 c 8152 8275', 19475 'STATE 5 d 8081 8629', 19476 'STATE 3 p 8081 8630', 19477 'STATE 1 0 8081 8275', 19478 'STATE 2 d 8632 8631', 19479 'STATE 1 # 8634 8633', 19480 'STATE 5 t 8635 8152', 19481 'STATE 6 # 8275 8636', 19482 'STATE 5 i 8638 8637', 19483 'STATE 6 # 8275 8639', 19484 'STATE 6 i 8295 8152', 19485 'STATE 6 e 8152 8640', 19486 'STATE 5 v 8295 8641', 19487 'STATE 5 i 8275 8642', 19488 'STATE 1 # 8152 8160', 19489 'STATE 5 n 8644 8643', 19490 'STATE 5 c 8160 8645', 19491 'STATE 3 r 8100 8152', 19492 'STATE 1 a 8100 8646', 19493 'STATE 3 l 8100 8647', 19494 'STATE 6 y 8649 8648', 19495 'STATE 3 m 8152 8275', 19496 'STATE 2 a 8651 8650', 19497 'STATE 1 a 8652 8160', 19498 'STATE 1 a 8160 8653', 19499 'STATE 1 0 8654 8075', 19500 'STATE 6 f 8275 8160', 19501 'STATE 6 e 8075 8275', 19502 'STATE 1 0 8081 8075', 19503 'STATE 3 c 8081 8655', 19504 'STATE 1 e 8081 8656', 19505 'STATE 3 s 8081 8657', 19506 'STATE 1 t 8075 8658', 19507 'STATE 6 e 8081 8075', 19508 'STATE 3 l 8081 8659', 19509 'STATE 1 # 8075 8660', 19510 'STATE 6 n 8662 8661', 19511 'STATE 6 a 8664 8663', 19512 'STATE 6 u 8075 8665', 19513 'STATE 3 m 8666 8075', 19514 'STATE 6 s 8075 8100', 19515 'STATE 2 x 8100 8667', 19516 'STATE 6 # 8100 8668', 19517 'STATE 2 a 8670 8669', 19518 'STATE 6 a 8317 8671', 19519 'STATE 6 n 8147 8672', 19520 'STATE 6 n 8674 8673', 19521 'STATE 6 l 8075 8147', 19522 'STATE 4 s 8676 8675', 19523 'STATE 3 h 8678 8677', 19524 'STATE 6 t 8680 8679', 19525 'STATE 3 e 8152 8681', 19526 'STATE 4 m 8683 8682', 19527 'STATE 3 l 8275 8684', 19528 'STATE 1 # 8096 8685', 19529 'STATE 3 l 8160 8096', 19530 'STATE 5 d 8275 8686', 19531 'STATE 6 h 8275 8687', 19532 'STATE 3 h 8275 8152', 19533 'STATE 6 i 8275 8096', 19534 'STATE 1 0 8689 8688', 19535 'STATE 2 r 8100 8690', 19536 'STATE 3 h 8692 8691', 19537 'STATE 5 i 8694 8693', 19538 'STATE 5 l 8696 8695', 19539 'STATE 3 k 8698 8697', 19540 'STATE 5 b 8699 8152', 19541 'STATE 3 k 8096 8700', 19542 'STATE 3 h 8275 8701', 19543 'STATE 5 b 8703 8702', 19544 'STATE 6 o 8152 8160', 19545 'STATE 6 i 8160 8704', 19546 'STATE 6 d 8706 8705', 19547 'STATE 6 s 8464 8707', 19548 'STATE 1 # 8708 8152', 19549 'STATE 4 x 8152 8709', 19550 'STATE 2 # 8710 8152', 19551 'STATE 6 n 8275 8711', 19552 'STATE 3 c 8713 8712', 19553 'STATE 3 s 8275 8714', 19554 'STATE 6 r 8275 8096', 19555 'STATE 2 n 8278 8715', 19556 'STATE 6 e 8272 8716', 19557 'STATE 2 r 8718 8717', 19558 'STATE 3 l 8720 8719', 19559 'STATE 5 r 8100 8721', 19560 'STATE 2 f 8275 8722', 19561 'STATE 3 l 8275 8096', 19562 'STATE 5 a 8724 8723', 19563 'STATE 5 o 8726 8725', 19564 'STATE 6 e 8094 8727', 19565 'STATE 6 z 8729 8728', 19566 'STATE 5 y 8275 8730', 19567 'STATE 6 n 8732 8731', 19568 'STATE 3 m 8152 8733', 19569 'STATE 6 a 8096 8152', 19570 'STATE 5 r 8295 8734', 19571 'STATE 2 b 8152 8735', 19572 'STATE 5 r 8152 8736', 19573 'STATE 6 i 8160 8152', 19574 'STATE 5 v 8160 8737', 19575 'STATE 2 e 8100 8738', 19576 'STATE 6 u 8094 8739', 19577 'STATE 1 a 8293 8160', 19578 'STATE 1 m 8275 8160', 19579 'STATE 1 d 8160 8740', 19580 'STATE 1 e 8160 8741', 19581 'STATE 3 d 8100 8160', 19582 'STATE 3 n 8160 8295', 19583 'STATE 5 e 8152 8742', 19584 'STATE 3 s 8075 8743', 19585 'STATE 1 a 8081 8744', 19586 'STATE 3 b 8075 8745', 19587 'STATE 3 d 8075 8081', 19588 'STATE 3 b 8081 8100', 19589 'STATE 1 r 8147 8746', 19590 'STATE 1 0 8747 8100', 19591 'STATE 1 0 8100 8120', 19592 'STATE 5 p 8749 8748', 19593 'STATE 5 i 8100 8750', 19594 'STATE 3 b 8075 8751', 19595 'STATE 1 m 8075 8752', 19596 'STATE 3 p 8100 8147', 19597 'STATE 2 s 8100 8753', 19598 'STATE 3 n 8100 8754', 19599 'STATE 5 e 8100 8075', 19600 'STATE 3 m 8756 8755', 19601 'STATE 3 h 8147 8100', 19602 'STATE 6 c 8147 8757', 19603 'STATE 3 l 8147 8100', 19604 'STATE 4 l 8759 8758', 19605 'STATE 5 i 8761 8760', 19606 'STATE 1 # 8763 8762', 19607 'STATE 2 s 8071 8764', 19608 'STATE 3 w 8120 8765', 19609 'STATE 1 h 8075 8766', 19610 'STATE 3 s 8275 8767', 19611 'STATE 1 # 8769 8768', 19612 'STATE 3 c 8770 8559', 19613 'STATE 1 i 8275 8771', 19614 'STATE 1 i 8096 8772', 19615 'STATE 1 # 8275 8773', 19616 'STATE 1 e 8096 8404', 19617 'STATE 1 i 8160 8100', 19618 'STATE 6 e 8160 8644', 19619 'STATE 2 s 8152 8774', 19620 'STATE 2 c 8100 8775', 19621 'STATE 2 t 8100 8776', 19622 'STATE 5 o 8778 8777', 19623 'STATE 4 v 8780 8779', 19624 'STATE 5 o 8782 8781', 19625 'STATE 3 c 8784 8783', 19626 'STATE 3 l 8786 8785', 19627 'STATE 6 k 8275 8787', 19628 'STATE 6 a 8789 8788', 19629 'STATE 6 g 8096 8275', 19630 'STATE 6 # 8275 8790', 19631 'STATE 6 n 8160 8791', 19632 'STATE 6 e 8275 8160', 19633 'STATE 6 r 8152 8792', 19634 'STATE 6 s 8794 8793', 19635 'STATE 4 p 8160 8795', 19636 'STATE 3 r 8797 8796', 19637 'STATE 2 g 8160 8152', 19638 'STATE 4 d 8799 8798', 19639 'STATE 3 m 8801 8800', 19640 'STATE 6 t 8160 8275', 19641 'STATE 3 p 8152 8802', 19642 'STATE 6 d 8160 8094', 19643 'STATE 3 c 8804 8803', 19644 'STATE 1 e 8272 8805', 19645 'STATE 5 d 8806 8272', 19646 'STATE 2 l 8808 8807', 19647 'STATE 3 r 8096 8275', 19648 'STATE 2 b 8081 8809', 19649 'STATE 6 r 8081 8275', 19650 'STATE 3 n 8081 8810', 19651 'STATE 2 k 8200 8811', 19652 'STATE 5 t 8813 8812', 19653 'STATE 6 # 8275 8814', 19654 'STATE 2 l 8075 8815', 19655 'STATE 2 p 8160 8816', 19656 'STATE 6 a 8160 8094', 19657 'STATE 6 o 8275 8817', 19658 'STATE 3 r 8075 8160', 19659 'STATE 3 w 8819 8818', 19660 'STATE 6 e 8275 8820', 19661 'STATE 3 b 8096 8275', 19662 'STATE 6 g 8152 8821', 19663 'STATE 5 b 8152 8822', 19664 'STATE 5 t 8824 8823', 19665 'STATE 5 d 8826 8825', 19666 'STATE 5 t 8160 8827', 19667 'STATE 3 s 8100 8147', 19668 'STATE 3 m 8094 8100', 19669 'STATE 3 p 8152 8828', 19670 'STATE 3 n 8160 8829', 19671 'STATE 3 b 8075 8830', 19672 'STATE 6 s 8081 8075', 19673 'STATE 1 # 8081 8831', 19674 'STATE 3 c 8075 8832', 19675 'STATE 6 e 8075 8100', 19676 'STATE 6 g 8169 8075', 19677 'STATE 5 d 8834 8833', 19678 'STATE 2 t 8147 8835', 19679 'STATE 5 g 8100 8836', 19680 'STATE 6 # 8100 8837', 19681 'STATE 2 e 8100 8075', 19682 'STATE 2 a 8100 8313', 19683 'STATE 2 d 8100 8075', 19684 'STATE 6 e 8839 8838', 19685 'STATE 5 i 8840 8100', 19686 'STATE 3 f 8100 8841', 19687 'STATE 1 # 8843 8842', 19688 'STATE 6 g 8845 8844', 19689 'STATE 5 k 8847 8846', 19690 'STATE 6 t 8849 8848', 19691 'STATE 1 0 8275 8850', 19692 'STATE 5 r 8100 8851', 19693 'STATE 1 s 8275 8852', 19694 'STATE 1 # 8854 8853', 19695 'STATE 3 n 8160 8855', 19696 'STATE 4 l 8856 8275', 19697 'STATE 4 v 8858 8857', 19698 'STATE 4 l 8160 8152', 19699 'STATE 1 n 8152 8859', 19700 'STATE 3 h 8275 8096', 19701 'STATE 3 i 8861 8860', 19702 'STATE 6 s 8275 8862', 19703 'STATE 3 r 8152 8160', 19704 'STATE 3 t 8147 8863', 19705 'STATE 1 e 8100 8147', 19706 'STATE 4 h 8865 8864', 19707 'STATE 6 # 8275 8866', 19708 'STATE 4 x 8152 8867', 19709 'STATE 3 m 8071 8868', 19710 'STATE 5 i 8870 8869', 19711 'STATE 6 r 8094 8871', 19712 'STATE 3 r 8873 8872', 19713 'STATE 6 a 8160 8874', 19714 'STATE 3 b 8876 8875', 19715 'STATE 4 c 8275 8877', 19716 'STATE 6 l 8160 8878', 19717 'STATE 3 d 8160 8879', 19718 'STATE 3 b 8295 8152', 19719 'STATE 3 t 8881 8880', 19720 'STATE 6 t 8275 8152', 19721 'STATE 6 o 8160 8882', 19722 'STATE 6 r 8884 8883', 19723 'STATE 4 c 8152 8885', 19724 'STATE 2 i 8160 8886', 19725 'STATE 2 g 8152 8887', 19726 'STATE 1 # 8275 8096', 19727 'STATE 6 n 8889 8888', 19728 'STATE 6 l 8891 8890', 19729 'STATE 3 t 8152 8892', 19730 'STATE 4 d 8152 8275', 19731 'STATE 3 d 8893 8275', 19732 'STATE 1 0 8895 8894', 19733 'STATE 6 r 8094 8896', 19734 'STATE 2 l 8897 8272', 19735 'STATE 3 v 8272 8898', 19736 'STATE 3 d 8900 8899', 19737 'STATE 3 l 8901 8275', 19738 'STATE 3 r 8902 8081', 19739 'STATE 5 a 8904 8903', 19740 'STATE 2 t 8906 8905', 19741 'STATE 3 p 8152 8907', 19742 'STATE 6 e 8566 8908', 19743 'STATE 2 c 8152 8909', 19744 'STATE 2 i 8075 8910', 19745 'STATE 3 r 8275 8160', 19746 'STATE 6 u 8275 8911', 19747 'STATE 6 p 8160 8912', 19748 'STATE 6 e 8094 8152', 19749 'STATE 3 m 8152 8913', 19750 'STATE 3 b 8152 8914', 19751 'STATE 6 u 8295 8915', 19752 'STATE 2 c 8152 8916', 19753 'STATE 6 e 8160 8917', 19754 'STATE 5 q 8152 8918', 19755 'STATE 6 u 8160 8919', 19756 'STATE 5 f 8160 8920', 19757 'STATE 2 t 8922 8921', 19758 'STATE 3 r 8160 8923', 19759 'STATE 5 k 8081 8924', 19760 'STATE 6 c 8081 8925', 19761 'STATE 3 r 8075 8926', 19762 'STATE 3 t 8928 8927', 19763 'STATE 6 e 8100 8929', 19764 'STATE 3 c 8100 8930', 19765 'STATE 1 r 8100 8837', 19766 'STATE 2 o 8075 8100', 19767 'STATE 6 l 8931 8100', 19768 'STATE 5 d 8100 8932', 19769 'STATE 6 s 8100 8147', 19770 'STATE 6 l 8147 8100', 19771 'STATE 6 # 8934 8933', 19772 'STATE 5 o 8936 8935', 19773 'STATE 5 d 8938 8937', 19774 'STATE 1 0 8152 8939', 19775 'STATE 1 0 8941 8940', 19776 'STATE 6 i 8081 8942', 19777 'STATE 6 s 8275 8943', 19778 'STATE 3 p 8944 8152', 19779 'STATE 2 h 8275 8945', 19780 'STATE 5 b 8275 8946', 19781 'STATE 5 n 8160 8096', 19782 'STATE 1 0 8948 8947', 19783 'STATE 4 p 8950 8949', 19784 'STATE 1 a 8160 8951', 19785 'STATE 1 r 8275 8952', 19786 'STATE 4 l 8954 8953', 19787 'STATE 2 o 8152 8295', 19788 'STATE 1 r 8152 8955', 19789 'STATE 3 g 8096 8956', 19790 'STATE 2 r 8096 8275', 19791 'STATE 5 k 8275 8957', 19792 'STATE 1 o 8147 8958', 19793 'STATE 4 s 8960 8959', 19794 'STATE 5 r 8100 8961', 19795 'STATE 4 x 8152 8962', 19796 'STATE 6 t 8152 8963', 19797 'STATE 6 t 8160 8964', 19798 'STATE 5 y 8966 8965', 19799 'STATE 6 n 8968 8967', 19800 'STATE 3 c 8893 8969', 19801 'STATE 6 u 8160 8970', 19802 'STATE 6 e 8275 8971', 19803 'STATE 6 e 8160 8972', 19804 'STATE 4 s 8974 8973', 19805 'STATE 4 l 8275 8975', 19806 'STATE 6 t 8096 8976', 19807 'STATE 4 l 8160 8977', 19808 'STATE 3 t 8071 8152', 19809 'STATE 6 i 8096 8978', 19810 'STATE 6 s 8096 8152', 19811 'STATE 6 e 8160 8979', 19812 'STATE 1 # 8981 8980', 19813 'STATE 2 e 8160 8982', 19814 'STATE 4 f 8160 8983', 19815 'STATE 3 r 8160 8275', 19816 'STATE 1 h 8152 8984', 19817 'STATE 4 b 8986 8985', 19818 'STATE 4 z 8100 8987', 19819 'STATE 6 s 8566 8988', 19820 'STATE 2 # 8152 8096', 19821 'STATE 4 p 8160 8989', 19822 'STATE 6 n 8152 8160', 19823 'STATE 6 r 8991 8990', 19824 'STATE 3 b 8275 8992', 19825 'STATE 6 n 8094 8275', 19826 'STATE 3 r 8272 8278', 19827 'STATE 2 e 8272 8993', 19828 'STATE 1 t 8275 8994', 19829 'STATE 5 s 8096 8995', 19830 'STATE 1 a 8996 8096', 19831 'STATE 5 l 8081 8997', 19832 'STATE 3 l 8275 8998', 19833 'STATE 6 r 8275 8081', 19834 'STATE 2 o 8096 8999', 19835 'STATE 3 l 8096 8275', 19836 'STATE 5 s 9001 9000', 19837 'STATE 1 r 9003 9002', 19838 'STATE 3 s 8160 9004', 19839 'STATE 5 y 8275 9005', 19840 'STATE 6 n 9007 9006', 19841 'STATE 2 # 9009 9008', 19842 'STATE 6 c 8152 9010', 19843 'STATE 6 s 8275 9011', 19844 'STATE 6 i 8295 9012', 19845 'STATE 5 v 8160 9013', 19846 'STATE 1 u 8160 9014', 19847 'STATE 5 j 8152 9015', 19848 'STATE 6 r 8152 8644', 19849 'STATE 5 s 8160 9016', 19850 'STATE 2 e 9018 9017', 19851 'STATE 3 r 9019 8160', 19852 'STATE 1 m 8160 9020', 19853 'STATE 5 p 8075 9021', 19854 'STATE 2 n 8081 9022', 19855 'STATE 6 h 8075 8081', 19856 'STATE 6 c 8100 9023', 19857 'STATE 2 a 8100 9024', 19858 'STATE 3 c 9025 8100', 19859 'STATE 3 m 8100 8075', 19860 'STATE 5 i 8075 8100', 19861 'STATE 5 g 8100 9026', 19862 'STATE 5 t 9028 9027', 19863 'STATE 5 o 8275 9029', 19864 'STATE 2 s 9031 9030', 19865 'STATE 4 t 8275 9032', 19866 'STATE 6 r 8094 9033', 19867 'STATE 3 n 9035 9034', 19868 'STATE 2 p 8152 9036', 19869 'STATE 5 s 9038 9037', 19870 'STATE 6 r 8152 9039', 19871 'STATE 6 e 8152 9040', 19872 'STATE 6 # 8275 9041', 19873 'STATE 2 e 8152 9042', 19874 'STATE 1 o 8275 9043', 19875 'STATE 3 r 8275 9044', 19876 'STATE 4 v 9046 9045', 19877 'STATE 4 h 8295 9047', 19878 'STATE 6 n 9049 9048', 19879 'STATE 2 p 8152 8075', 19880 'STATE 2 e 9051 9050', 19881 'STATE 2 n 9052 8275', 19882 'STATE 4 x 9054 9053', 19883 'STATE 2 t 8295 9055', 19884 'STATE 2 i 8295 9056', 19885 'STATE 2 t 8096 9057', 19886 'STATE 6 # 8275 9058', 19887 'STATE 2 t 8147 9059', 19888 'STATE 4 f 9061 9060', 19889 'STATE 5 s 9063 9062', 19890 'STATE 3 j 8152 9064', 19891 'STATE 3 m 8275 9065', 19892 'STATE 4 t 8275 9066', 19893 'STATE 3 l 8094 9067', 19894 'STATE 3 w 9069 9068', 19895 'STATE 3 p 8152 8275', 19896 'STATE 6 c 9071 9070', 19897 'STATE 3 m 8096 8275', 19898 'STATE 3 m 8160 9072', 19899 'STATE 3 t 9074 9073', 19900 'STATE 6 i 8152 8275', 19901 'STATE 6 o 8160 9075', 19902 'STATE 3 c 9077 9076', 19903 'STATE 6 l 8275 8096', 19904 'STATE 4 h 8152 9078', 19905 'STATE 4 v 8094 8096', 19906 'STATE 4 v 8160 8275', 19907 'STATE 3 r 8096 9079', 19908 'STATE 6 u 8160 9080', 19909 'STATE 3 m 9082 9081', 19910 'STATE 4 s 8152 9083', 19911 'STATE 2 n 8152 9084', 19912 'STATE 2 a 8160 9085', 19913 'STATE 3 t 8160 9086', 19914 'STATE 6 y 8275 9087', 19915 'STATE 2 # 8275 8096', 19916 'STATE 4 t 8275 9088', 19917 'STATE 3 r 9090 9089', 19918 'STATE 3 r 8152 8275', 19919 'STATE 6 n 8275 9091', 19920 'STATE 2 n 8094 9092', 19921 'STATE 3 l 8094 9093', 19922 'STATE 2 a 8272 9094', 19923 'STATE 2 n 9096 9095', 19924 'STATE 2 a 8096 8081', 19925 'STATE 5 e 8096 9097', 19926 'STATE 2 g 8275 9098', 19927 'STATE 3 r 8275 9099', 19928 'STATE 3 s 8096 9100', 19929 'STATE 3 m 9102 9101', 19930 'STATE 6 # 9104 9103', 19931 'STATE 6 o 8160 8152', 19932 'STATE 2 e 8295 8152', 19933 'STATE 2 i 8096 9105', 19934 'STATE 5 a 9107 9106', 19935 'STATE 6 t 8160 9108', 19936 'STATE 3 s 8160 9109', 19937 'STATE 6 o 8295 9110', 19938 'STATE 3 h 8152 9111', 19939 'STATE 6 g 8152 9112', 19940 'STATE 6 l 8152 9113', 19941 'STATE 5 p 9115 9114', 19942 'STATE 6 c 8152 9116', 19943 'STATE 2 s 8160 8152', 19944 'STATE 5 l 8152 9117', 19945 'STATE 5 n 8160 8152', 19946 'STATE 2 u 9119 9118', 19947 'STATE 1 r 8295 9120', 19948 'STATE 1 e 8295 9056', 19949 'STATE 1 r 8152 9121', 19950 'STATE 6 # 8075 9122', 19951 'STATE 3 m 8081 9123', 19952 'STATE 6 i 8100 9124', 19953 'STATE 2 c 8075 9125', 19954 'STATE 2 c 8100 9126', 19955 'STATE 5 s 8100 9127', 19956 'STATE 4 m 9129 9128', 19957 'STATE 1 0 9131 9130', 19958 'STATE 5 i 8275 9132', 19959 'STATE 5 k 8152 9133', 19960 'STATE 5 i 8275 9134', 19961 'STATE 4 p 9136 9135', 19962 'STATE 6 # 9138 9137', 19963 'STATE 3 r 8160 9139', 19964 'STATE 6 # 8096 8160', 19965 'STATE 3 e 9141 9140', 19966 'STATE 1 # 9143 9142', 19967 'STATE 2 c 8100 9144', 19968 'STATE 5 h 8152 9145', 19969 'STATE 1 # 8100 8275', 19970 'STATE 6 a 8275 9146', 19971 'STATE 2 m 8152 8160', 19972 'STATE 5 s 8096 9147', 19973 'STATE 3 l 8275 9148', 19974 'STATE 6 u 8160 9149', 19975 'STATE 6 l 8071 8096', 19976 'STATE 4 c 8096 9150', 19977 'STATE 2 t 8152 9151', 19978 'STATE 3 i 8096 8275', 19979 'STATE 2 h 8096 9152', 19980 'STATE 4 c 8275 8152', 19981 'STATE 1 e 8275 8096', 19982 'STATE 4 h 8096 9153', 19983 'STATE 3 b 8152 8295', 19984 'STATE 1 e 8295 9154', 19985 'STATE 1 a 8160 8295', 19986 'STATE 2 m 8275 8096', 19987 'STATE 2 e 8096 9155', 19988 'STATE 3 r 8147 9156', 19989 'STATE 4 j 8272 9157', 19990 'STATE 3 s 8100 9158', 19991 'STATE 3 k 9160 9159', 19992 'STATE 3 p 9162 9161', 19993 'STATE 5 n 9163 8275', 19994 'STATE 3 l 8275 9164', 19995 'STATE 6 c 9166 9165', 19996 'STATE 6 n 8096 9167', 19997 'STATE 5 u 9169 9168', 19998 'STATE 5 f 8120 8275', 19999 'STATE 6 t 9171 9170', 20000 'STATE 3 s 8160 8152', 20001 'STATE 3 k 8160 9172', 20002 'STATE 6 s 8275 8152', 20003 'STATE 6 e 8152 8275', 20004 'STATE 6 u 8160 8152', 20005 'STATE 3 h 8275 9173', 20006 'STATE 6 b 8096 8275', 20007 'STATE 6 r 8152 9174', 20008 'STATE 3 k 8096 9175', 20009 'STATE 6 l 8160 8152', 20010 'STATE 4 g 8160 9176', 20011 'STATE 4 d 8152 9177', 20012 'STATE 6 c 9179 9178', 20013 'STATE 4 g 8100 9180', 20014 'STATE 1 # 9182 9181', 20015 'STATE 1 # 8096 9183', 20016 'STATE 6 t 9185 9184', 20017 'STATE 4 p 8275 9186', 20018 'STATE 2 # 9187 8152', 20019 'STATE 6 n 8275 8152', 20020 'STATE 6 s 8275 9188', 20021 'STATE 1 # 8094 8275', 20022 'STATE 6 r 8094 9189', 20023 'STATE 3 l 8272 8278', 20024 'STATE 6 a 8081 9190', 20025 'STATE 6 r 8096 8275', 20026 'STATE 5 a 9191 8096', 20027 'STATE 2 c 8275 8081', 20028 'STATE 3 b 9193 9192', 20029 'STATE 2 u 8096 9194', 20030 'STATE 5 y 8160 9195', 20031 'STATE 5 y 9196 8160', 20032 'STATE 3 m 8160 8152', 20033 'STATE 3 r 8160 9197', 20034 'STATE 1 a 9198 8160', 20035 'STATE 2 b 8152 9199', 20036 'STATE 3 r 8275 8152', 20037 'STATE 2 a 8160 9200', 20038 'STATE 1 # 8275 9201', 20039 'STATE 5 o 8096 8152', 20040 'STATE 5 n 9203 9202', 20041 'STATE 6 # 8275 9187', 20042 'STATE 6 t 9204 8152', 20043 'STATE 5 s 9206 9205', 20044 'STATE 6 r 8152 8295', 20045 'STATE 5 d 9075 9207', 20046 'STATE 6 c 8152 9208', 20047 'STATE 3 c 9210 9209', 20048 'STATE 3 l 8160 8295', 20049 'STATE 3 l 8160 9211', 20050 'STATE 3 g 8160 9212', 20051 'STATE 3 l 8075 9213', 20052 'STATE 2 o 8081 9214', 20053 'STATE 3 e 8075 9215', 20054 'STATE 1 m 8075 9216', 20055 'STATE 1 r 8100 8147', 20056 'STATE 5 k 8100 9217', 20057 'STATE 4 x 8152 9218', 20058 'STATE 3 c 9220 9219', 20059 'STATE 6 e 9222 9221', 20060 'STATE 4 b 8160 9223', 20061 'STATE 5 y 9225 9224', 20062 'STATE 5 p 8152 9226', 20063 'STATE 5 h 9227 8152', 20064 'STATE 6 # 8275 9228', 20065 'STATE 6 l 8096 9229', 20066 'STATE 5 v 8152 9230', 20067 'STATE 3 a 8081 9231', 20068 'STATE 1 a 8275 9232', 20069 'STATE 2 a 8152 9233', 20070 'STATE 2 h 8160 9234', 20071 'STATE 6 # 9236 9235', 20072 'STATE 2 f 8100 9237', 20073 'STATE 2 g 9239 9238', 20074 'STATE 5 c 9240 8152', 20075 'STATE 1 m 8096 9241', 20076 'STATE 3 r 8096 9242', 20077 'STATE 2 s 8275 8096', 20078 'STATE 6 l 9244 9243', 20079 'STATE 4 k 8096 9245', 20080 'STATE 6 b 8152 9246', 20081 'STATE 2 s 8096 9247', 20082 'STATE 4 z 8096 9248', 20083 'STATE 1 t 8152 9249', 20084 'STATE 5 t 8275 9250', 20085 'STATE 3 n 8147 9251', 20086 'STATE 5 u 9253 9252', 20087 'STATE 5 f 9255 9254', 20088 'STATE 3 y 8275 9256', 20089 'STATE 6 i 8152 9257', 20090 'STATE 6 a 9259 9258', 20091 'STATE 6 e 8160 8152', 20092 'STATE 6 e 8275 9260', 20093 'STATE 6 m 8275 9261', 20094 'STATE 3 l 8160 9262', 20095 'STATE 3 m 8096 8152', 20096 'STATE 6 c 8152 8275', 20097 'STATE 5 v 8152 9263', 20098 'STATE 6 n 8152 9264', 20099 'STATE 3 p 8096 9265', 20100 'STATE 3 p 8160 9266', 20101 'STATE 6 g 8152 9090', 20102 'STATE 6 c 8152 9267', 20103 'STATE 6 n 8152 8275', 20104 'STATE 3 d 8096 8275', 20105 'STATE 3 r 9269 9268', 20106 'STATE 6 n 8152 8096', 20107 'STATE 6 l 8160 9270', 20108 'STATE 2 b 8096 8160', 20109 'STATE 3 c 8160 9271', 20110 'STATE 3 s 8160 8275', 20111 'STATE 4 l 8275 9272', 20112 'STATE 2 e 8160 9273', 20113 'STATE 4 t 9275 9274', 20114 'STATE 4 l 8096 8160', 20115 'STATE 2 # 9276 8152', 20116 'STATE 3 b 8152 8275', 20117 'STATE 2 e 8094 9277', 20118 'STATE 3 d 8094 8275', 20119 'STATE 2 f 8081 9278', 20120 'STATE 6 n 8081 8096', 20121 'STATE 3 s 8275 9279', 20122 'STATE 6 r 8081 9280', 20123 'STATE 2 r 8096 9281', 20124 'STATE 6 # 9283 9282', 20125 'STATE 2 i 8275 8160', 20126 'STATE 3 m 8160 9284', 20127 'STATE 3 r 8096 8160', 20128 'STATE 2 s 8152 9285', 20129 'STATE 2 e 8160 9286', 20130 'STATE 3 t 8275 8160', 20131 'STATE 5 k 9227 9287', 20132 'STATE 3 t 8094 8152', 20133 'STATE 3 d 8096 8152', 20134 'STATE 6 e 8295 8152', 20135 'STATE 6 t 8295 8152', 20136 'STATE 1 # 8152 9288', 20137 'STATE 6 r 9290 9289', 20138 'STATE 2 l 8160 9291', 20139 'STATE 2 i 8152 8160', 20140 'STATE 3 d 8160 9292', 20141 'STATE 3 l 8152 8160', 20142 'STATE 6 l 8075 9293', 20143 'STATE 3 b 8081 9294', 20144 'STATE 5 y 9296 9295', 20145 'STATE 2 r 8100 9297', 20146 'STATE 5 l 8100 9298', 20147 'STATE 2 p 9300 9299', 20148 'STATE 5 o 8160 9301', 20149 'STATE 2 c 9303 9302', 20150 'STATE 4 c 8152 9304', 20151 'STATE 1 a 8160 9305', 20152 'STATE 4 t 8152 9306', 20153 'STATE 4 c 9308 9307', 20154 'STATE 3 b 8152 9309', 20155 'STATE 3 e 9311 9310', 20156 'STATE 3 m 8094 8152', 20157 'STATE 3 h 8275 9312', 20158 'STATE 2 p 8160 8152', 20159 'STATE 6 t 9314 9313', 20160 'STATE 5 s 8160 9315', 20161 'STATE 2 m 8275 9316', 20162 'STATE 3 m 8152 9317', 20163 'STATE 1 i 8160 8152', 20164 'STATE 2 g 8152 9318', 20165 'STATE 5 h 9320 9319', 20166 'STATE 2 p 9322 9321', 20167 'STATE 1 # 9324 9323', 20168 'STATE 3 l 8100 8275', 20169 'STATE 6 i 8152 8100', 20170 'STATE 3 p 8275 9325', 20171 'STATE 1 i 8275 8096', 20172 'STATE 6 s 9327 9326', 20173 'STATE 4 s 8275 9328', 20174 'STATE 4 s 8096 9329', 20175 'STATE 3 n 8152 9330', 20176 'STATE 1 0 8096 9331', 20177 'STATE 4 g 9333 9332', 20178 'STATE 3 n 8147 9334', 20179 'STATE 5 # 8275 9335', 20180 'STATE 2 a 8100 9336', 20181 'STATE 5 h 9338 9337', 20182 'STATE 6 l 8152 9339', 20183 'STATE 3 h 8152 9340', 20184 'STATE 6 # 8100 9341', 20185 'STATE 3 p 9343 9342', 20186 'STATE 6 a 8275 9344', 20187 'STATE 3 f 8152 9345', 20188 'STATE 3 c 8152 8160', 20189 'STATE 6 # 8152 8275', 20190 'STATE 3 n 9347 9346', 20191 'STATE 6 # 8275 9348', 20192 'STATE 5 c 9350 9349', 20193 'STATE 6 m 8152 8160', 20194 'STATE 6 d 8152 9351', 20195 'STATE 3 s 8152 8096', 20196 'STATE 6 s 9353 9352', 20197 'STATE 6 c 8096 9354', 20198 'STATE 2 p 8160 9355', 20199 'STATE 3 i 8293 9356', 20200 'STATE 4 p 9358 9357', 20201 'STATE 3 l 8275 9359', 20202 'STATE 3 n 8160 9360', 20203 'STATE 4 h 8096 9361', 20204 'STATE 6 l 8096 8275', 20205 'STATE 3 c 8275 9362', 20206 'STATE 3 h 8094 9363', 20207 'STATE 6 n 9365 9364', 20208 'STATE 3 t 8720 9366', 20209 'STATE 5 s 8081 8275', 20210 'STATE 2 s 8906 8096', 20211 'STATE 2 c 8152 9367', 20212 'STATE 5 o 8275 8152', 20213 'STATE 2 r 8160 9368', 20214 'STATE 3 r 8152 9369', 20215 'STATE 6 e 8160 9370', 20216 'STATE 5 d 9372 9371', 20217 'STATE 5 s 9373 8160', 20218 'STATE 6 p 8160 9374', 20219 'STATE 5 t 8152 8160', 20220 'STATE 2 d 8160 9375', 20221 'STATE 3 r 8160 9376', 20222 'STATE 5 v 8075 8578', 20223 'STATE 2 m 8081 9377', 20224 'STATE 6 h 8075 9378', 20225 'STATE 1 c 8100 8075', 20226 'STATE 1 a 8147 9379', 20227 'STATE 5 n 8100 9380', 20228 'STATE 6 c 9382 9381', 20229 'STATE 3 e 8075 9383', 20230 'STATE 5 b 9385 9384', 20231 'STATE 6 n 8094 9386', 20232 'STATE 6 a 8094 8152', 20233 'STATE 2 h 8152 9387', 20234 'STATE 4 t 9388 8152', 20235 'STATE 6 e 8152 9389', 20236 'STATE 3 r 9391 9390', 20237 'STATE 3 d 8160 9392', 20238 'STATE 3 l 8160 9393', 20239 'STATE 5 i 9395 9394', 20240 'STATE 5 l 8096 8160', 20241 'STATE 6 t 8160 9396', 20242 'STATE 5 t 8275 9397', 20243 'STATE 5 s 8275 9398', 20244 'STATE 3 h 9400 9399', 20245 'STATE 3 p 8096 9401', 20246 'STATE 2 i 8152 9402', 20247 'STATE 6 o 9404 9403', 20248 'STATE 5 o 8275 9405', 20249 'STATE 2 n 8152 8094', 20250 'STATE 3 r 8152 9406', 20251 'STATE 5 c 8096 8152', 20252 'STATE 6 e 8160 9407', 20253 'STATE 6 # 8100 9408', 20254 'STATE 6 o 8275 9409', 20255 'STATE 1 m 9411 9410', 20256 'STATE 4 l 8160 9412', 20257 'STATE 2 i 8160 9413', 20258 'STATE 4 p 8096 9414', 20259 'STATE 3 t 8275 9415', 20260 'STATE 4 b 8096 9416', 20261 'STATE 4 f 9418 9417', 20262 'STATE 3 d 8100 9419', 20263 'STATE 1 r 8147 9420', 20264 'STATE 3 c 8275 8096', 20265 'STATE 2 i 8100 9421', 20266 'STATE 5 r 9423 9422', 20267 'STATE 4 t 9425 9424', 20268 'STATE 3 d 8152 9426', 20269 'STATE 3 l 8152 8275', 20270 'STATE 3 h 8100 9427', 20271 'STATE 6 h 8100 9428', 20272 'STATE 6 u 8152 9429', 20273 'STATE 5 t 8152 9002', 20274 'STATE 6 e 8152 9430', 20275 'STATE 6 n 8275 9431', 20276 'STATE 4 v 8152 8275', 20277 'STATE 6 e 9433 9432', 20278 'STATE 5 f 9434 8275', 20279 'STATE 6 a 8295 8275', 20280 'STATE 6 a 8275 9435', 20281 'STATE 6 l 9437 9436', 20282 'STATE 3 p 8160 8275', 20283 'STATE 4 s 8160 9438', 20284 'STATE 2 t 8275 9439', 20285 'STATE 4 g 8160 9440', 20286 'STATE 3 h 9442 9441', 20287 'STATE 2 p 8152 8275', 20288 'STATE 4 d 8096 8275', 20289 'STATE 6 d 8160 8096', 20290 'STATE 6 e 8152 9443', 20291 'STATE 4 g 8152 9444', 20292 'STATE 3 l 8094 8275', 20293 'STATE 5 l 8081 9445', 20294 'STATE 2 c 8081 8275', 20295 'STATE 3 m 8275 8081', 20296 'STATE 6 s 8275 9446', 20297 'STATE 2 l 8160 9447', 20298 'STATE 3 l 8152 9448', 20299 'STATE 6 s 9449 8152', 20300 'STATE 3 s 8100 8152', 20301 'STATE 6 l 8152 9450', 20302 'STATE 1 i 8152 8160', 20303 'STATE 6 t 8152 9451', 20304 'STATE 2 h 8160 9452', 20305 'STATE 3 n 8152 8295', 20306 'STATE 1 r 8081 9453', 20307 'STATE 1 e 9455 9454', 20308 'STATE 1 h 8075 9456', 20309 'STATE 3 s 8100 9457', 20310 'STATE 5 i 9459 9458', 20311 'STATE 4 g 8152 9460', 20312 'STATE 5 r 9462 9461', 20313 'STATE 1 0 9464 9463', 20314 'STATE 1 c 8094 9465', 20315 'STATE 1 e 9467 9466', 20316 'STATE 6 o 8152 9468', 20317 'STATE 3 l 8152 8100', 20318 'STATE 6 o 8295 8152', 20319 'STATE 4 t 9470 9469', 20320 'STATE 5 h 8147 9471', 20321 'STATE 2 l 9259 9472', 20322 'STATE 4 m 8160 9473', 20323 'STATE 5 u 9475 9474', 20324 'STATE 6 s 9477 9476', 20325 'STATE 3 r 9479 9478', 20326 'STATE 6 a 9481 9480', 20327 'STATE 3 p 9482 8160', 20328 'STATE 5 l 8816 9483', 20329 'STATE 2 c 8152 9484', 20330 'STATE 6 t 8096 9485', 20331 'STATE 3 t 8152 9486', 20332 'STATE 5 o 9212 9487', 20333 'STATE 5 c 8160 9488', 20334 'STATE 5 t 9490 9489', 20335 'STATE 5 t 8603 9491', 20336 'STATE 2 o 8152 9492', 20337 'STATE 2 b 8152 8100', 20338 'STATE 1 # 8275 9493', 20339 'STATE 1 s 9495 9494', 20340 'STATE 2 o 8160 8152', 20341 'STATE 3 t 8096 8275', 20342 'STATE 1 i 8160 8275', 20343 'STATE 6 l 8152 9496', 20344 'STATE 3 l 8275 9497', 20345 'STATE 4 p 9499 9498', 20346 'STATE 3 t 8152 9500', 20347 'STATE 3 h 8160 8147', 20348 'STATE 2 a 8147 9501', 20349 'STATE 3 h 8147 9259', 20350 'STATE 1 a 8100 8147', 20351 'STATE 4 g 9503 9502', 20352 'STATE 3 r 8295 9504', 20353 'STATE 6 i 9506 9505', 20354 'STATE 3 r 8100 9507', 20355 'STATE 6 n 8096 9508', 20356 'STATE 6 e 8152 9509', 20357 'STATE 3 c 9511 9510', 20358 'STATE 6 i 8100 8275', 20359 'STATE 3 r 9513 9512', 20360 'STATE 6 t 8816 9514', 20361 'STATE 3 r 9516 9515', 20362 'STATE 4 c 8275 9517', 20363 'STATE 3 g 8152 8275', 20364 'STATE 6 v 8152 9518', 20365 'STATE 3 r 9520 9519', 20366 'STATE 4 t 8275 9521', 20367 'STATE 2 c 8275 9522', 20368 'STATE 6 n 8160 8096', 20369 'STATE 6 e 8096 9523', 20370 'STATE 4 d 8152 9524', 20371 'STATE 4 b 8275 8152', 20372 'STATE 4 c 9526 9525', 20373 'STATE 3 h 8152 8275', 20374 'STATE 1 r 8081 9527', 20375 'STATE 2 e 8152 9528', 20376 'STATE 3 h 8152 9212', 20377 'STATE 5 d 8160 8152', 20378 'STATE 1 a 8152 8774', 20379 'STATE 6 r 8152 9529', 20380 'STATE 6 h 8152 9530', 20381 'STATE 1 e 9531 8160', 20382 'STATE 1 i 8081 8200', 20383 'STATE 6 o 8100 9532', 20384 'STATE 5 i 9534 9533', 20385 'STATE 1 n 8075 8100', 20386 'STATE 5 i 8100 9535', 20387 'STATE 5 h 9537 9536', 20388 'STATE 4 g 9539 9538', 20389 'STATE 4 t 8152 9540', 20390 'STATE 4 v 8295 9541', 20391 'STATE 1 p 8275 9542', 20392 'STATE 6 c 8152 9543', 20393 'STATE 5 i 8096 8152', 20394 'STATE 2 a 8100 8152', 20395 'STATE 5 b 8160 9544', 20396 'STATE 6 u 8160 8094', 20397 'STATE 2 a 8152 8275', 20398 'STATE 4 m 9546 9545', 20399 'STATE 2 c 8100 9547', 20400 'STATE 4 f 8100 9548', 20401 'STATE 3 n 8160 9549', 20402 'STATE 4 d 8160 9550', 20403 'STATE 5 h 9552 9551', 20404 'STATE 6 l 8152 9553', 20405 'STATE 4 h 8096 9554', 20406 'STATE 4 m 8152 8160', 20407 'STATE 3 l 8160 9555', 20408 'STATE 2 p 9556 8275', 20409 'STATE 6 c 9558 9557', 20410 'STATE 5 l 9107 8275', 20411 'STATE 2 o 8152 9559', 20412 'STATE 5 t 8275 9560', 20413 'STATE 5 m 8275 9561', 20414 'STATE 6 # 9562 8275', 20415 'STATE 1 o 8152 9563', 20416 'STATE 6 h 8160 9564', 20417 'STATE 2 c 8160 9565', 20418 'PHONE ih', 20419 'STATE 2 n 8275 9566', 20420 'STATE 5 o 8096 9567', 20421 'STATE 3 l 8100 9568', 20422 'STATE 3 l 8275 9569', 20423 'STATE 4 t 9571 9570', 20424 'STATE 4 t 8160 8152', 20425 'STATE 6 h 8152 9572', 20426 'STATE 4 c 8152 9573', 20427 'STATE 1 # 9574 8160', 20428 'STATE 1 y 8160 8096', 20429 'STATE 2 s 9576 9575', 20430 'STATE 3 r 8160 9577', 20431 'STATE 5 y 9579 9578', 20432 'STATE 3 d 9581 9580', 20433 'STATE 3 c 8275 9582', 20434 'STATE 3 k 8152 9583', 20435 'STATE 4 p 8160 8152', 20436 'STATE 3 m 9585 9584', 20437 'STATE 4 b 9587 9586', 20438 'STATE 3 g 8152 9588', 20439 'STATE 5 q 8152 9589', 20440 'STATE 6 a 8100 9590', 20441 'STATE 6 # 8100 9591', 20442 'STATE 6 i 8100 8152', 20443 'STATE 3 p 9593 9592', 20444 'STATE 6 f 9595 9594', 20445 'STATE 4 b 8152 9596', 20446 'STATE 3 r 8275 9187', 20447 'STATE 3 s 8275 9597', 20448 'STATE 6 t 8096 9598', 20449 'STATE 4 b 8152 8275', 20450 'STATE 4 c 8275 8160', 20451 'STATE 4 b 8096 9599', 20452 'STATE 6 n 9601 9600', 20453 'STATE 1 # 9602 8275', 20454 'STATE 6 m 9604 9603', 20455 'STATE 6 a 8275 8100', 20456 'STATE 6 r 8632 9605', 20457 'STATE 5 o 9607 9606', 20458 'STATE 3 r 8295 8152', 20459 'STATE 6 a 9609 9608', 20460 'STATE 3 n 8152 8160', 20461 'STATE 1 h 8075 9610', 20462 'STATE 6 # 8075 8100', 20463 'STATE 3 r 8075 8100', 20464 'STATE 5 m 8100 8317', 20465 'STATE 5 r 9612 9611', 20466 'STATE 4 t 9614 9613', 20467 'STATE 6 a 8275 9615', 20468 'STATE 3 l 8160 8275', 20469 'STATE 4 p 8152 9616', 20470 'STATE 4 d 8160 9617', 20471 'STATE 1 e 8275 8160', 20472 'STATE 2 e 8152 9618', 20473 'STATE 2 n 9620 9619', 20474 'STATE 4 k 8275 9621', 20475 'STATE 5 s 8160 9622', 20476 'STATE 3 c 9624 9623', 20477 'STATE 4 p 8152 9625', 20478 'STATE 2 r 8160 9626', 20479 'STATE 4 p 8160 8275', 20480 'STATE 5 r 9628 9627', 20481 'STATE 4 t 9630 9629', 20482 'STATE 6 c 8160 9631', 20483 'STATE 4 x 8152 9632', 20484 'STATE 2 s 8096 9633', 20485 'STATE 4 v 8160 8096', 20486 'STATE 1 0 9635 9634', 20487 'STATE 3 t 8275 8152', 20488 'STATE 2 a 8096 8160', 20489 'STATE 3 p 9636 8275', 20490 'STATE 1 e 8096 9637', 20491 'STATE 3 f 8275 9638', 20492 'STATE 2 b 8160 9639', 20493 'STATE 3 r 9641 9640', 20494 'STATE 5 t 8100 8152', 20495 'STATE 3 m 8275 9642', 20496 'STATE 5 y 8096 8100', 20497 'STATE 6 # 9643 8971', 20498 'STATE 6 n 8160 8816', 20499 'STATE 6 b 8160 9644', 20500 'STATE 1 i 8096 8152', 20501 'STATE 4 l 8152 8096', 20502 'STATE 6 s 8275 9645', 20503 'STATE 4 l 8160 8096', 20504 'STATE 3 p 8152 9646', 20505 'STATE 3 h 8152 9647', 20506 'STATE 2 r 8295 8152', 20507 'STATE 5 l 9649 9648', 20508 'STATE 4 p 8152 9650', 20509 'STATE 5 l 9651 8152', 20510 'STATE 6 i 8100 9652', 20511 'STATE 6 e 8152 9653', 20512 'STATE 4 c 9655 9654', 20513 'STATE 3 n 8094 9656', 20514 'STATE 6 e 8094 8100', 20515 'STATE 6 s 8275 9657', 20516 'STATE 3 r 8152 8096', 20517 'STATE 3 m 8152 8100', 20518 'STATE 6 o 9659 9658', 20519 'STATE 5 t 9661 9660', 20520 'STATE 3 b 8100 9662', 20521 'STATE 3 k 8160 9663', 20522 'STATE 4 p 8152 8160', 20523 'STATE 6 l 9665 9664', 20524 'STATE 3 c 8275 8152', 20525 'STATE 4 s 8152 8096', 20526 'STATE 6 e 8275 9444', 20527 'STATE 4 d 9667 9666', 20528 'STATE 2 r 8096 9668', 20529 'STATE 3 l 8275 9669', 20530 'STATE 2 r 8275 9107', 20531 'STATE 3 r 8275 9670', 20532 'STATE 3 m 8160 9671', 20533 'STATE 4 l 8160 8275', 20534 'STATE 3 r 8081 9672', 20535 'STATE 6 a 9674 9673', 20536 'STATE 6 m 8152 8346', 20537 'STATE 6 o 9676 9675', 20538 'STATE 5 t 8160 8295', 20539 'STATE 2 a 8075 9677', 20540 'STATE 4 h 9679 9678', 20541 'STATE 6 a 9681 9680', 20542 'STATE 1 0 8152 9682', 20543 'STATE 6 e 9684 9683', 20544 'STATE 4 t 9686 9685', 20545 'STATE 1 e 8152 9687', 20546 'STATE 5 o 8160 9688', 20547 'STATE 5 i 9690 9689', 20548 'STATE 6 a 8152 8160', 20549 'STATE 1 o 8160 9691', 20550 'STATE 4 h 9693 9692', 20551 'STATE 5 b 8160 8152', 20552 'STATE 5 s 9694 8160', 20553 'STATE 1 a 8152 9695', 20554 'STATE 5 s 8160 8152', 20555 'STATE 2 b 8160 9696', 20556 'STATE 4 h 8275 9697', 20557 'STATE 4 t 8096 9698', 20558 'STATE 3 i 8096 9699', 20559 'STATE 3 r 9585 9700', 20560 'STATE 6 s 8275 9701', 20561 'STATE 3 i 8160 9702', 20562 'STATE 4 d 8275 8160', 20563 'STATE 6 d 8152 9703', 20564 'STATE 5 l 8152 9704', 20565 'STATE 5 i 8160 8275', 20566 'STATE 1 c 8096 8275', 20567 'STATE 3 h 8275 9705', 20568 'STATE 1 e 8152 9706', 20569 'STATE 3 g 8096 9707', 20570 'STATE 2 e 8096 9708', 20571 'STATE 3 p 8275 8100', 20572 'STATE 3 r 8160 8152', 20573 'STATE 4 s 8160 9709', 20574 'STATE 6 r 8096 9710', 20575 'STATE 2 a 8160 9711', 20576 'STATE 4 t 8152 8160', 20577 'STATE 5 c 9713 9712', 20578 'STATE 4 b 9651 8152', 20579 'STATE 4 b 9714 8275', 20580 'STATE 6 e 8275 8152', 20581 'STATE 5 g 8100 8152', 20582 'STATE 6 i 8152 9715', 20583 'STATE 3 s 8152 9716', 20584 'STATE 6 e 8152 9717', 20585 'STATE 6 e 9718 8152', 20586 'STATE 4 g 8275 9719', 20587 'STATE 5 u 8275 9720', 20588 'STATE 3 r 8152 9721', 20589 'STATE 5 m 9722 8152', 20590 'STATE 6 u 8295 9723', 20591 'STATE 3 g 8152 9724', 20592 'STATE 6 o 8160 9725', 20593 'STATE 3 k 9727 9726', 20594 'STATE 3 m 8275 8152', 20595 'STATE 4 k 8160 9728', 20596 'STATE 6 r 8096 8160', 20597 'STATE 2 e 8160 9729', 20598 'STATE 3 r 8275 8771', 20599 'STATE 2 s 8275 8160', 20600 'STATE 2 # 9731 9730', 20601 'STATE 6 # 8275 9732', 20602 'STATE 5 m 8160 9733', 20603 'STATE 3 d 8152 8160', 20604 'STATE 5 f 8160 9734', 20605 'STATE 5 f 8160 9735', 20606 'STATE 6 s 8931 9736', 20607 'STATE 5 o 9738 9737', 20608 'STATE 5 o 8160 8275', 20609 'STATE 1 h 9489 9739', 20610 'STATE 2 c 8096 9740', 20611 'STATE 4 c 9742 9741', 20612 'STATE 6 a 8160 8152', 20613 'STATE 2 y 8152 9743', 20614 'STATE 6 t 9745 9744', 20615 'STATE 3 m 8275 9746', 20616 'STATE 4 b 9747 8160', 20617 'STATE 4 t 8152 9748', 20618 'STATE 3 r 8152 9162', 20619 'STATE 3 t 8160 9749', 20620 'STATE 6 e 8152 9234', 20621 'STATE 2 a 8295 9750', 20622 'STATE 3 s 8160 8096', 20623 'STATE 3 i 8160 9751', 20624 'STATE 2 s 8160 9752', 20625 'STATE 2 s 8152 9753', 20626 'STATE 2 p 9755 9754', 20627 'STATE 2 b 8152 9756', 20628 'STATE 2 e 8160 9757', 20629 'STATE 2 c 8275 8152', 20630 'STATE 4 q 8160 8096', 20631 'STATE 3 r 9759 9758', 20632 'STATE 5 l 9761 9760', 20633 'STATE 5 i 9763 9762', 20634 'STATE 2 e 8275 8415', 20635 'STATE 2 u 8152 9764', 20636 'STATE 6 r 8275 9765', 20637 'STATE 2 u 8096 9766', 20638 'STATE 1 l 8275 9767', 20639 'STATE 3 r 8275 8096', 20640 'STATE 1 b 8295 9768', 20641 'STATE 4 z 8152 9769', 20642 'STATE 4 c 9770 8152', 20643 'STATE 6 # 8275 8160', 20644 'STATE 6 a 9071 8160', 20645 'STATE 4 p 8275 8152', 20646 'STATE 6 a 8275 8152', 20647 'STATE 3 b 8152 8094', 20648 'STATE 4 c 8096 9771', 20649 'STATE 3 t 8096 9772', 20650 'STATE 3 m 8152 8126', 20651 'STATE 6 o 8100 8295', 20652 'STATE 6 e 8100 9773', 20653 'STATE 3 m 8100 9513', 20654 'STATE 3 c 8275 9774', 20655 'STATE 4 d 9776 9775', 20656 'STATE 6 n 8160 8275', 20657 'STATE 6 r 8275 9777', 20658 'STATE 1 o 8160 9778', 20659 'STATE 6 a 8152 9779', 20660 'STATE 3 t 8160 8275', 20661 'STATE 5 e 8275 8096', 20662 'STATE 3 s 8160 9780', 20663 'STATE 6 i 8160 9781', 20664 'STATE 5 s 8160 9782', 20665 'STATE 3 i 8100 9783', 20666 'STATE 5 y 9785 9784', 20667 'STATE 4 p 9787 9786', 20668 'STATE 1 a 8160 9788', 20669 'STATE 2 l 8152 9789', 20670 'STATE 1 p 8096 9790', 20671 'STATE 1 u 8096 9791', 20672 'STATE 2 d 8094 9792', 20673 'STATE 6 e 9794 9793', 20674 'STATE 4 v 8160 9795', 20675 'STATE 3 v 8275 8160', 20676 'STATE 1 0 8160 8275', 20677 'STATE 6 t 8152 8275', 20678 'STATE 2 o 8160 9796', 20679 'STATE 3 l 8160 9797', 20680 'STATE 3 g 8160 8152', 20681 'STATE 2 i 8295 8152', 20682 'STATE 1 s 8152 9798', 20683 'STATE 3 i 8275 9799', 20684 'STATE 5 l 9800 8152', 20685 'STATE 4 p 8160 9801', 20686 'STATE 2 p 8152 9802', 20687 'STATE 2 a 8152 9167', 20688 'STATE 6 c 8152 9803', 20689 'STATE 6 k 8275 9804', 20690 'STATE 3 r 8275 9805', 20691 'STATE 5 y 8096 8275', 20692 'STATE 6 v 8096 8152', 20693 'STATE 1 r 8152 9411', 20694 'STATE 6 s 8275 9806', 20695 'STATE 2 t 8160 8275', 20696 'STATE 4 h 8160 9807', 20697 'STATE 1 c 8152 9808', 20698 'STATE 6 o 8152 9809', 20699 'STATE 6 i 8275 9810', 20700 'STATE 4 q 8096 8275', 20701 'STATE 5 c 8096 9811', 20702 'STATE 6 l 8100 8152', 20703 'STATE 4 b 8275 9812', 20704 'STATE 4 p 8275 9813', 20705 'STATE 6 n 8096 8160', 20706 'STATE 4 l 9815 9814', 20707 'STATE 2 s 8160 9816', 20708 'STATE 6 s 8152 8275', 20709 'STATE 5 h 8160 9817', 20710 'STATE 5 c 8160 9818', 20711 'STATE 5 t 8160 8152', 20712 'STATE 1 d 8100 9819', 20713 'STATE 5 l 9821 9820', 20714 'STATE 4 d 8096 9822', 20715 'STATE 1 0 9824 9823', 20716 'STATE 6 u 8152 9825', 20717 'STATE 6 o 9827 9826', 20718 'STATE 1 o 8152 9828', 20719 'STATE 3 r 8160 9829', 20720 'STATE 3 r 9830 8703', 20721 'STATE 1 0 8094 8160', 20722 'STATE 4 v 8096 9831', 20723 'STATE 1 t 8152 9832', 20724 'STATE 4 c 8152 9833', 20725 'STATE 2 p 8160 9834', 20726 'STATE 1 e 8160 8152', 20727 'STATE 1 n 8152 9835', 20728 'STATE 5 y 8100 9836', 20729 'STATE 4 c 8096 8152', 20730 'STATE 6 e 8160 9837', 20731 'STATE 6 e 8152 9838', 20732 'STATE 2 p 9839 8275', 20733 'STATE 5 p 8275 9840', 20734 'STATE 1 m 8152 9841', 20735 'STATE 1 e 8160 9842', 20736 'STATE 2 s 8160 9843', 20737 'STATE 3 i 8160 9844', 20738 'STATE 5 z 9651 8152', 20739 'STATE 6 a 8152 8275', 20740 'STATE 3 m 9846 9845', 20741 'STATE 4 k 9848 9847', 20742 'STATE 4 c 8275 9849', 20743 'STATE 6 n 8275 9850', 20744 'STATE 6 n 8096 9851', 20745 'STATE 4 t 9439 9852', 20746 'STATE 2 r 8160 9853', 20747 'STATE 6 l 8152 8160', 20748 'STATE 1 o 9855 9854', 20749 'STATE 4 b 9857 9856', 20750 'STATE 3 r 9859 9858', 20751 'STATE 4 t 8160 9860', 20752 'STATE 1 o 8152 9861', 20753 'STATE 4 d 9863 9862', 20754 'STATE 3 n 8152 9864', 20755 'STATE 1 0 8152 9865', 20756 'STATE 1 i 8096 9866', 20757 'STATE 3 n 9868 9867', 20758 'STATE 2 s 8152 8160', 20759 'STATE 6 e 9869 8275', 20760 'STATE 3 m 9871 9870', 20761 'STATE 4 d 8152 9872', 20762 'STATE 4 d 8152 8096', 20763 'STATE 3 d 8160 8096', 20764 'STATE 3 l 8152 9873', 20765 'STATE 4 m 9389 9874', 20766 'STATE 4 g 8275 8160', 20767 'STATE 2 b 8152 9875', 20768 'STATE 4 f 8152 9876', 20769 'STATE 2 o 8160 9877', 20770 'STATE 3 c 8160 9878', 20771 'STATE 2 i 8096 9879', 20772 'STATE 3 c 8160 9880', 20773 'STATE 2 d 8152 9881', 20774 'STATE 6 i 9882 8152', 20775 'STATE 5 t 8152 9651', 20776 'STATE 6 s 8275 9883', 20777 'STATE 3 s 8152 8275', 20778 'STATE 3 s 8096 9884', 20779 'STATE 6 b 8275 9885', 20780 'STATE 6 k 8275 8152', 20781 'STATE 1 i 8160 9886', 20782 'STATE 3 t 8160 8152', 20783 'STATE 5 n 9888 9887', 20784 'STATE 6 # 8100 8075', 20785 'STATE 5 u 9890 9889', 20786 'STATE 6 e 8160 9891', 20787 'STATE 6 e 9893 9892', 20788 'STATE 4 p 8160 8096', 20789 'STATE 4 g 8160 9894', 20790 'STATE 1 r 8160 9895', 20791 'STATE 6 n 8096 8275', 20792 'STATE 6 r 8275 8152', 20793 'STATE 2 h 8160 9896', 20794 'STATE 1 e 8096 8160', 20795 'STATE 1 u 8096 8160', 20796 'STATE 1 a 8152 9897', 20797 'STATE 2 a 8152 8160', 20798 'STATE 1 e 8160 8096', 20799 'STATE 4 k 8275 9898', 20800 'STATE 2 o 8096 8275', 20801 'STATE 1 0 8275 8096', 20802 'STATE 2 y 8152 9899', 20803 'STATE 5 l 9162 8152', 20804 'STATE 4 c 8152 8275', 20805 'STATE 6 n 8152 9900', 20806 'STATE 6 s 9902 9901', 20807 'STATE 1 o 8160 9903', 20808 'STATE 1 i 8096 9904', 20809 'STATE 1 c 9906 9905', 20810 'STATE 3 s 8152 9907', 20811 'STATE 5 h 8275 8152', 20812 'STATE 6 l 8718 9908', 20813 'STATE 3 t 8160 9909', 20814 'STATE 3 m 8096 9910', 20815 'STATE 4 c 8096 9911', 20816 'STATE 6 # 8100 9912', 20817 'STATE 2 t 8075 9913', 20818 'STATE 1 0 9915 9914', 20819 'STATE 4 g 9917 9916', 20820 'STATE 5 s 9918 8152', 20821 'STATE 1 0 8644 9919', 20822 'STATE 4 g 8275 9920', 20823 'STATE 4 c 8160 8096', 20824 'STATE 1 l 8275 9921', 20825 'STATE 6 l 9797 8160', 20826 'STATE 3 l 8160 9922', 20827 'STATE 2 e 8275 9923', 20828 'STATE 1 e 8152 9259', 20829 'STATE 4 v 8160 8152', 20830 'STATE 3 t 8096 9924', 20831 'STATE 2 m 8160 9925', 20832 'STATE 2 s 8152 9444', 20833 'STATE 6 a 8100 9926', 20834 'STATE 6 c 8096 9927', 20835 'STATE 2 t 8096 8275', 20836 'STATE 3 b 8295 9928', 20837 'STATE 6 r 8275 8774', 20838 'STATE 3 j 8096 8275', 20839 'STATE 6 m 8096 8275', 20840 'STATE 2 i 8160 8293', 20841 'STATE 2 r 8075 9929', 20842 'STATE 1 n 8100 9930', 20843 'STATE 2 e 9932 9931', 20844 'STATE 6 r 8160 9933', 20845 'STATE 1 0 8096 9934', 20846 'STATE 3 l 8100 8152', 20847 'STATE 6 t 8160 8152', 20848 'STATE 6 i 8275 8160', 20849 'STATE 3 n 8275 8160', 20850 'STATE 4 c 8096 9935', 20851 'STATE 3 m 9937 9936', 20852 'STATE 1 i 8096 9938', 20853 'STATE 5 o 8160 9939', 20854 'STATE 2 a 9941 9940', 20855 'STATE 2 o 8152 9942', 20856 'STATE 3 r 9943 8096', 20857 'STATE 2 g 8160 9944', 20858 'STATE 2 b 8100 9945', 20859 'STATE 2 n 8100 9946', 20860 'STATE 6 o 9521 9947', 20861 'STATE 1 r 8160 8152', 20862 'STATE 5 c 9683 8152', 20863 'STATE 3 p 8152 9948', 20864 'STATE 6 s 8096 9949', 20865 'STATE 3 t 9951 9950', 20866 'STATE 4 c 8160 8152', 20867 'STATE 6 o 9953 9952', 20868 'STATE 6 z 8160 9954', 20869 'STATE 2 e 8152 8160', 20870 'STATE 3 b 8152 8160', 20871 'STATE 3 c 8152 8275', 20872 'STATE 2 t 8096 9955', 20873 'STATE 2 e 8160 9956', 20874 'STATE 2 t 8100 9957', 20875 'STATE 1 l 8100 9958', 20876 'STATE 4 f 8100 9959', 20877 'STATE 4 c 9918 9198', 20878 'STATE 6 r 8160 9960', 20879 'STATE 4 g 8160 9643', 20880 'STATE 4 c 8160 9961', 20881 'STATE 2 t 8160 9962', 20882 'STATE 4 b 8160 8275', 20883 'STATE 1 c 8160 9963', 20884 'STATE 6 n 9964 8096', 20885 'STATE 2 h 8160 9965', 20886 'STATE 6 n 8100 9966', 20887 'STATE 1 i 8075 9967', 20888 'STATE 6 s 8152 9968', 20889 'STATE 1 m 8160 9969', 20890 'STATE 1 m 8152 8160', 20891 'STATE 3 t 8096 9970', 20892 'STATE 3 v 8152 9971', 20893 'STATE 2 c 8096 8160', 20894 'STATE 2 r 8160 9972', 20895 'STATE 1 m 8100 8075', 20896 'STATE 2 y 8075 9973', 20897 'STATE 1 a 9975 9974', 20898 'STATE 2 e 8160 9976', 20899 'STATE 1 e 8160 9977', 20900 'STATE 6 n 9979 9978', 20901 'STATE 4 d 8152 9980', 20902 'STATE 1 a 8075 9981', 20903 'STATE 3 n 8152 9982', 20904 'STATE 2 l 8152 9983', 20905 'STATE 4 b 8096 9984', 20906 'STATE 1 0 8096 9985', 20907 'STATE 2 n 8160 9986', 20908 'STATE 3 r 8275 9987', 20909 'STATE 2 l 8160 9988', 20910 'STATE 3 h 8100 8075', 20911 'STATE 2 o 9989 8152', 20912 'STATE 6 i 8275 8152', 20913 'STATE 4 d 9198 9990', 20914 'STATE 6 n 8160 9991', 20915 'STATE 2 p 8096 8275', 20916 'STATE 3 i 8160 9992', 20917 'STATE 1 p 8160 9993', 20918 'STATE 5 n 8275 8152', 20919 'STATE 3 r 8160 9994', 20920 'STATE 2 h 8096 8160', 20921 'STATE 1 # 8160 8096', 20922 'STATE 3 r 8160 9995', 20923 'STATE 3 t 8096 8160', 20924 'STATE 1 g 8160 9996', 20925 'STATE 3 l 8152 9997', 20926 'STATE 3 n 8295 8160', 20927 'INDEX 9998 p', 20928 'STATE 4 p 10000 9999', 20929 'STATE 4 h 10002 10001', 20930 'PHONE epsilon', 20931 'STATE 4 f 10004 10003', 20932 'STATE 2 # 10006 10005', 20933 'STATE 4 s 10008 10007', 20934 'STATE 2 0 10000 10009', 20935 'STATE 2 h 10011 10010', 20936 'STATE 3 u 10009 10010', 20937 'STATE 3 p 10009 10012', 20938 'STATE 2 0 10000 10013', 20939 'PHONE p', 20940 'PHONE f', 20941 'STATE 3 e 10009 10010', 20942 'STATE 4 t 10004 10014', 20943 'STATE 2 o 10015 10009', 20944 'STATE 4 b 10017 10016', 20945 'STATE 3 r 10000 10009', 20946 'STATE 4 n 10004 10009', 20947 'STATE 2 a 10000 10009', 20948 'INDEX 10018 q', 20949 'PHONE k', 20950 'INDEX 10019 r', 20951 'STATE 3 e 10021 10020', 20952 'STATE 4 r 10023 10022', 20953 'STATE 1 # 10025 10024', 20954 'STATE 1 0 10027 10026', 20955 'STATE 2 c 10029 10028', 20956 'STATE 4 # 10031 10030', 20957 'STATE 4 r 10033 10032', 20958 'STATE 3 u 10035 10034', 20959 'STATE 3 u 10037 10036', 20960 'STATE 1 0 10029 10038', 20961 'PHONE epsilon', 20962 'STATE 4 r 10040 10039', 20963 'STATE 2 e 10042 10041', 20964 'STATE 4 i 10044 10043', 20965 'STATE 2 p 10046 10045', 20966 'STATE 3 o 10048 10047', 20967 'STATE 1 # 10050 10049', 20968 'STATE 3 i 10052 10051', 20969 'STATE 4 i 10029 10053', 20970 'STATE 2 b 10029 10054', 20971 'STATE 4 i 10056 10055', 20972 'STATE 2 v 10058 10057', 20973 'STATE 2 i 10058 10059', 20974 'PHONE r', 20975 'STATE 4 e 10061 10060', 20976 'STATE 2 p 10063 10062', 20977 'STATE 2 t 10029 10064', 20978 'STATE 5 i 10058 10065', 20979 'STATE 3 i 10067 10066', 20980 'STATE 2 w 10069 10068', 20981 'STATE 2 o 10071 10070', 20982 'STATE 4 i 10073 10072', 20983 'STATE 3 a 10075 10074', 20984 'STATE 4 o 10058 10076', 20985 'STATE 4 a 10042 10077', 20986 'STATE 3 a 10079 10078', 20987 'STATE 2 i 10081 10080', 20988 'STATE 5 n 10083 10082', 20989 'STATE 1 n 10085 10084', 20990 'PHONE er', 20991 'STATE 2 u 10058 10086', 20992 'STATE 4 o 10088 10087', 20993 'STATE 2 p 10058 10089', 20994 'STATE 5 v 10058 10090', 20995 'STATE 5 o 10042 10091', 20996 'STATE 2 g 10042 10092', 20997 'STATE 5 e 10058 10093', 20998 'STATE 3 r 10095 10094', 20999 'STATE 2 a 10042 10096', 21000 'STATE 1 # 10098 10097', 21001 'STATE 1 # 10093 10099', 21002 'STATE 2 a 10101 10100', 21003 'STATE 1 j 10093 10102', 21004 'STATE 4 o 10042 10103', 21005 'STATE 2 k 10058 10042', 21006 'STATE 4 z 10105 10104', 21007 'STATE 4 o 10107 10106', 21008 'STATE 5 i 10093 10108', 21009 'STATE 4 b 10058 10109', 21010 'STATE 2 w 10029 10110', 21011 'STATE 2 g 10029 10111', 21012 'STATE 5 # 10113 10112', 21013 'STATE 4 s 10114 10042', 21014 'STATE 5 z 10058 10115', 21015 'STATE 2 e 10042 10116', 21016 'STATE 2 h 10117 10029', 21017 'STATE 5 e 10058 10029', 21018 'STATE 2 a 10042 10058', 21019 'STATE 4 a 10119 10118', 21020 'STATE 2 p 10121 10120', 21021 'STATE 2 t 10058 10122', 21022 'STATE 5 s 10124 10123', 21023 'STATE 5 s 10042 10058', 21024 'STATE 2 m 10029 10125', 21025 'PHONE er1', 21026 'STATE 3 a 10127 10126', 21027 'STATE 2 u 10129 10128', 21028 'STATE 4 e 10131 10130', 21029 'STATE 4 # 10133 10132', 21030 'STATE 4 o 10135 10134', 21031 'STATE 4 k 10093 10136', 21032 'STATE 4 e 10138 10137', 21033 'STATE 1 t 10058 10042', 21034 'STATE 5 s 10140 10139', 21035 'STATE 4 a 10042 10141', 21036 'STATE 3 o 10142 10042', 21037 'STATE 3 g 10093 10143', 21038 'STATE 5 s 10144 10042', 21039 'STATE 5 u 10058 10042', 21040 'STATE 4 a 10042 10145', 21041 'STATE 4 e 10029 10146', 21042 'STATE 2 d 10148 10147', 21043 'STATE 1 # 10150 10149', 21044 'STATE 1 0 10152 10151', 21045 'STATE 4 a 10154 10153', 21046 'STATE 5 # 10058 10042', 21047 'STATE 5 e 10156 10155', 21048 'STATE 1 t 10058 10157', 21049 'STATE 1 s 10042 10029', 21050 'STATE 2 p 10159 10158', 21051 'STATE 5 # 10042 10160', 21052 'STATE 5 u 10058 10161', 21053 'STATE 5 n 10042 10058', 21054 'STATE 5 s 10042 10162', 21055 'STATE 2 d 10042 10163', 21056 'STATE 2 d 10058 10042', 21057 'STATE 2 h 10029 10164', 21058 'STATE 5 # 10166 10165', 21059 'STATE 2 e 10168 10167', 21060 'STATE 1 c 10170 10169', 21061 'STATE 1 s 10058 10171', 21062 'STATE 4 a 10173 10172', 21063 'STATE 2 m 10042 10174', 21064 'STATE 4 s 10176 10175', 21065 'STATE 2 c 10042 10177', 21066 'STATE 4 a 10179 10178', 21067 'STATE 2 b 10180 10042', 21068 'STATE 4 t 10182 10181', 21069 'STATE 4 a 10184 10183', 21070 'STATE 2 t 10058 10185', 21071 'STATE 1 c 10187 10186', 21072 'STATE 1 n 10093 10042', 21073 'STATE 4 e 10042 10188', 21074 'STATE 5 g 10144 10042', 21075 'STATE 5 y 10058 10042', 21076 'STATE 4 i 10058 10042', 21077 'STATE 4 i 10042 10189', 21078 'STATE 5 u 10058 10093', 21079 'STATE 3 i 10190 10029', 21080 'STATE 5 a 10042 10029', 21081 'STATE 5 a 10029 10191', 21082 'STATE 2 f 10029 10192', 21083 'STATE 5 i 10194 10193', 21084 'STATE 4 a 10042 10195', 21085 'STATE 4 o 10042 10196', 21086 'STATE 2 h 10058 10042', 21087 'STATE 5 # 10042 10197', 21088 'STATE 2 p 10042 10058', 21089 'STATE 1 n 10058 10198', 21090 'STATE 4 u 10042 10199', 21091 'STATE 4 u 10058 10200', 21092 'STATE 2 d 10042 10201', 21093 'STATE 2 f 10058 10042', 21094 'STATE 2 j 10042 10202', 21095 'STATE 5 d 10058 10042', 21096 'STATE 2 c 10029 10203', 21097 'STATE 4 z 10058 10204', 21098 'STATE 4 e 10205 10042', 21099 'STATE 1 # 10207 10206', 21100 'STATE 4 n 10209 10208', 21101 'STATE 1 # 10211 10210', 21102 'STATE 2 a 10042 10212', 21103 'STATE 5 c 10058 10213', 21104 'STATE 4 o 10215 10214', 21105 'STATE 5 # 10042 10216', 21106 'STATE 5 c 10058 10217', 21107 'STATE 4 d 10219 10218', 21108 'STATE 5 # 10221 10220', 21109 'STATE 2 o 10042 10222', 21110 'STATE 2 c 10224 10223', 21111 'STATE 5 i 10058 10042', 21112 'STATE 5 w 10058 10093', 21113 'STATE 1 s 10042 10225', 21114 'STATE 1 s 10058 10226', 21115 'STATE 4 g 10228 10227', 21116 'STATE 5 # 10042 10229', 21117 'STATE 2 s 10231 10230', 21118 'STATE 1 f 10042 10232', 21119 'STATE 5 g 10093 10233', 21120 'STATE 2 s 10235 10234', 21121 'STATE 4 e 10042 10093', 21122 'STATE 5 e 10029 10236', 21123 'STATE 2 m 10029 10237', 21124 'STATE 2 t 10029 10238', 21125 'STATE 2 e 10042 10239', 21126 'STATE 4 s 10241 10240', 21127 'STATE 4 o 10042 10242', 21128 'STATE 4 e 10042 10243', 21129 'STATE 5 o 10042 10244', 21130 'STATE 2 f 10058 10245', 21131 'STATE 4 y 10042 10246', 21132 'STATE 4 l 10093 10247', 21133 'STATE 5 s 10042 10248', 21134 'STATE 2 d 10042 10249', 21135 'STATE 2 j 10029 10250', 21136 'STATE 3 y 10252 10251', 21137 'STATE 3 y 10042 10253', 21138 'STATE 4 # 10255 10254', 21139 'STATE 4 o 10257 10256', 21140 'STATE 5 h 10093 10258', 21141 'STATE 5 # 10259 10093', 21142 'STATE 2 a 10261 10260', 21143 'STATE 2 a 10262 10042', 21144 'STATE 4 i 10042 10263', 21145 'STATE 1 d 10029 10264', 21146 'STATE 4 i 10266 10265', 21147 'STATE 5 n 10267 10042', 21148 'STATE 1 d 10058 10268', 21149 'STATE 2 o 10042 10269', 21150 'STATE 4 a 10271 10270', 21151 'STATE 2 f 10272 10042', 21152 'STATE 5 h 10058 10042', 21153 'STATE 2 o 10042 10058', 21154 'STATE 2 t 10058 10273', 21155 'STATE 4 t 10042 10274', 21156 'STATE 4 s 10275 10042', 21157 'STATE 1 r 10093 10276', 21158 'STATE 1 t 10093 10277', 21159 'STATE 4 i 10279 10278', 21160 'STATE 2 b 10058 10093', 21161 'STATE 5 l 10058 10280', 21162 'STATE 1 i 10029 10281', 21163 'STATE 1 n 10042 10282', 21164 'STATE 5 e 10042 10283', 21165 'STATE 5 e 10284 10042', 21166 'STATE 4 y 10042 10285', 21167 'STATE 4 v 10058 10286', 21168 'STATE 1 # 10042 10029', 21169 'STATE 1 c 10029 10287', 21170 'STATE 5 # 10042 10288', 21171 'STATE 2 d 10058 10289', 21172 'STATE 2 s 10093 10290', 21173 'STATE 1 o 10058 10093', 21174 'STATE 4 u 10042 10291', 21175 'STATE 2 e 10042 10292', 21176 'STATE 5 a 10294 10293', 21177 'STATE 2 h 10058 10295', 21178 'STATE 5 a 10297 10296', 21179 'STATE 4 v 10058 10298', 21180 'STATE 2 p 10058 10299', 21181 'STATE 2 b 10121 10042', 21182 'STATE 2 k 10029 10300', 21183 'STATE 4 o 10042 10301', 21184 'STATE 4 n 10093 10302', 21185 'STATE 3 c 10058 10303', 21186 'STATE 4 d 10305 10304', 21187 'STATE 2 l 10058 10306', 21188 'STATE 4 a 10308 10307', 21189 'STATE 5 # 10042 10309', 21190 'STATE 4 l 10093 10310', 21191 'STATE 1 h 10058 10093', 21192 'STATE 1 f 10312 10311', 21193 'STATE 1 b 10042 10313', 21194 'STATE 4 o 10042 10314', 21195 'STATE 5 # 10042 10315', 21196 'STATE 5 l 10042 10316', 21197 'STATE 4 # 10042 10317', 21198 'STATE 2 p 10042 10318', 21199 'STATE 2 v 10042 10319', 21200 'STATE 5 t 10319 10320', 21201 'STATE 5 d 10058 10321', 21202 'STATE 5 z 10058 10322', 21203 'STATE 5 # 10154 10323', 21204 'STATE 5 # 10058 10324', 21205 'STATE 1 a 10325 10058', 21206 'STATE 5 r 10042 10326', 21207 'STATE 5 e 10058 10042', 21208 'STATE 5 # 10327 10093', 21209 'STATE 1 e 10093 10328', 21210 'STATE 4 y 10330 10329', 21211 'STATE 1 i 10029 10331', 21212 'STATE 5 t 10333 10332', 21213 'STATE 2 e 10093 10334', 21214 'STATE 1 s 10042 10058', 21215 'STATE 5 o 10042 10335', 21216 'STATE 4 s 10042 10093', 21217 'STATE 4 u 10042 10336', 21218 'STATE 5 e 10093 10337', 21219 'STATE 2 h 10029 10338', 21220 'STATE 2 j 10029 10339', 21221 'STATE 5 e 10341 10340', 21222 'STATE 4 m 10343 10342', 21223 'STATE 5 c 10042 10093', 21224 'STATE 4 s 10058 10344', 21225 'STATE 1 0 10042 10345', 21226 'STATE 2 l 10058 10042', 21227 'STATE 2 i 10042 10058', 21228 'STATE 5 o 10347 10346', 21229 'STATE 4 d 10042 10348', 21230 'STATE 4 f 10058 10349', 21231 'STATE 5 l 10042 10350', 21232 'STATE 5 e 10352 10351', 21233 'STATE 4 a 10354 10353', 21234 'STATE 4 t 10093 10355', 21235 'STATE 1 f 10058 10356', 21236 'STATE 5 t 10358 10357', 21237 'STATE 5 # 10360 10359', 21238 'STATE 2 g 10058 10361', 21239 'STATE 4 i 10363 10362', 21240 'STATE 2 h 10324 10364', 21241 'STATE 2 p 10366 10365', 21242 'STATE 1 l 10368 10367', 21243 'STATE 1 t 10370 10369', 21244 'STATE 5 d 10093 10371', 21245 'STATE 1 e 10058 10372', 21246 'STATE 5 v 10058 10373', 21247 'STATE 5 c 10058 10374', 21248 'STATE 5 t 10093 10375', 21249 'STATE 2 e 10042 10376', 21250 'STATE 5 # 10042 10377', 21251 'STATE 1 # 10042 10058', 21252 'STATE 2 h 10042 10378', 21253 'STATE 2 f 10380 10379', 21254 'STATE 4 o 10382 10381', 21255 'STATE 5 t 10384 10383', 21256 'STATE 5 s 10058 10042', 21257 'STATE 2 d 10042 10058', 21258 'STATE 4 n 10042 10385', 21259 'STATE 4 d 10093 10058', 21260 'STATE 1 l 10058 10093', 21261 'STATE 4 o 10387 10386', 21262 'STATE 2 b 10042 10058', 21263 'STATE 2 c 10042 10388', 21264 'STATE 2 c 10029 10389', 21265 'STATE 2 t 10058 10029', 21266 'STATE 2 j 10058 10390', 21267 'STATE 1 p 10042 10391', 21268 'STATE 5 u 10393 10392', 21269 'STATE 4 m 10058 10394', 21270 'STATE 5 e 10029 10395', 21271 'STATE 5 i 10029 10396', 21272 'STATE 2 h 10398 10397', 21273 'STATE 2 o 10042 10399', 21274 'STATE 4 e 10042 10400', 21275 'STATE 1 e 10093 10401', 21276 'STATE 2 b 10058 10402', 21277 'STATE 2 d 10058 10403', 21278 'STATE 5 u 10405 10404', 21279 'STATE 2 v 10058 10406', 21280 'STATE 2 d 10093 10407', 21281 'STATE 4 n 10058 10408', 21282 'STATE 5 t 10042 10409', 21283 'STATE 2 d 10042 10410', 21284 'STATE 2 f 10042 10029', 21285 'STATE 5 c 10042 10411', 21286 'STATE 3 h 10412 10042', 21287 'STATE 4 o 10042 10413', 21288 'STATE 3 t 10058 10414', 21289 'STATE 4 s 10416 10415', 21290 'STATE 4 i 10418 10417', 21291 'STATE 2 w 10420 10419', 21292 'STATE 2 o 10042 10421', 21293 'STATE 2 n 10058 10422', 21294 'STATE 4 e 10275 10042', 21295 'STATE 5 t 10042 10423', 21296 'STATE 5 d 10425 10424', 21297 'STATE 2 m 10058 10426', 21298 'STATE 5 l 10058 10042', 21299 'STATE 4 s 10428 10427', 21300 'STATE 4 # 10058 10144', 21301 'STATE 1 w 10430 10429', 21302 'STATE 2 o 10042 10431', 21303 'STATE 5 r 10058 10432', 21304 'STATE 1 g 10042 10433', 21305 'STATE 4 i 10042 10058', 21306 'STATE 4 e 10435 10434', 21307 'STATE 4 e 10093 10436', 21308 'STATE 4 u 10042 10437', 21309 'STATE 1 a 10058 10438', 21310 'STATE 5 b 10042 10439', 21311 'STATE 5 s 10282 10440', 21312 'STATE 5 f 10042 10058', 21313 'STATE 1 s 10442 10441', 21314 'STATE 5 u 10444 10443', 21315 'STATE 1 o 10058 10445', 21316 'STATE 1 r 10058 10446', 21317 'STATE 4 g 10448 10447', 21318 'STATE 4 # 10450 10449', 21319 'STATE 2 e 10042 10451', 21320 'STATE 5 a 10042 10452', 21321 'STATE 1 a 10058 10042', 21322 'STATE 1 r 10029 10453', 21323 'STATE 1 s 10058 10454', 21324 'STATE 5 i 10093 10455', 21325 'STATE 2 p 10058 10093', 21326 'STATE 4 p 10058 10093', 21327 'STATE 1 s 10042 10456', 21328 'STATE 5 y 10029 10457', 21329 'STATE 4 v 10459 10458', 21330 'STATE 4 m 10093 10460', 21331 'STATE 2 b 10058 10461', 21332 'STATE 2 d 10058 10462', 21333 'STATE 1 x 10093 10463', 21334 'STATE 4 y 10058 10464', 21335 'STATE 5 s 10466 10465', 21336 'STATE 5 i 10468 10467', 21337 'STATE 4 m 10058 10469', 21338 'STATE 2 b 10470 10093', 21339 'STATE 2 c 10093 10471', 21340 'STATE 4 c 10065 10472', 21341 'STATE 2 g 10058 10473', 21342 'STATE 5 i 10029 10474', 21343 'STATE 4 # 10042 10475', 21344 'STATE 2 a 10058 10042', 21345 'STATE 2 m 10042 10476', 21346 'STATE 1 a 10058 10477', 21347 'STATE 5 z 10479 10478', 21348 'STATE 5 # 10480 10042', 21349 'STATE 1 s 10042 10481', 21350 'STATE 2 l 10042 10482', 21351 'STATE 5 s 10484 10483', 21352 'STATE 5 l 10058 10485', 21353 'STATE 2 w 10058 10486', 21354 'STATE 2 a 10042 10487', 21355 'STATE 2 p 10042 10488', 21356 'STATE 5 # 10042 10489', 21357 'STATE 2 p 10058 10042', 21358 'STATE 5 u 10058 10249', 21359 'STATE 4 # 10042 10490', 21360 'STATE 5 # 10042 10491', 21361 'STATE 1 u 10493 10492', 21362 'STATE 4 i 10093 10042', 21363 'STATE 2 i 10093 10494', 21364 'STATE 4 o 10042 10495', 21365 'STATE 5 s 10042 10496', 21366 'STATE 5 b 10058 10497', 21367 'STATE 5 s 10042 10498', 21368 'STATE 4 o 10500 10499', 21369 'STATE 4 y 10042 10501', 21370 'STATE 1 q 10058 10502', 21371 'STATE 5 l 10042 10503', 21372 'STATE 5 t 10058 10504', 21373 'STATE 2 b 10506 10505', 21374 'STATE 4 t 10042 10507', 21375 'STATE 2 b 10058 10508', 21376 'STATE 1 t 10093 10058', 21377 'STATE 5 b 10058 10509', 21378 'STATE 1 c 10058 10510', 21379 'STATE 5 z 10058 10511', 21380 'STATE 2 f 10179 10042', 21381 'STATE 4 u 10042 10512', 21382 'STATE 1 a 10058 10513', 21383 'STATE 5 # 10042 10058', 21384 'STATE 5 z 10058 10514', 21385 'STATE 1 e 10515 10042', 21386 'STATE 1 l 10058 10516', 21387 'STATE 4 v 10093 10517', 21388 'STATE 2 v 10042 10029', 21389 'STATE 2 d 10029 10518', 21390 'STATE 4 n 10520 10519', 21391 'STATE 5 a 10521 10058', 21392 'STATE 1 t 10523 10522', 21393 'STATE 2 t 10525 10524', 21394 'STATE 4 c 10527 10526', 21395 'STATE 2 t 10058 10528', 21396 'STATE 4 m 10093 10529', 21397 'STATE 1 l 10058 10530', 21398 'STATE 2 v 10042 10058', 21399 'STATE 5 e 10531 10093', 21400 'STATE 4 l 10228 10532', 21401 'STATE 2 m 10058 10093', 21402 'STATE 4 t 10058 10093', 21403 'STATE 2 f 10058 10533', 21404 'STATE 4 k 10093 10534', 21405 'STATE 5 r 10058 10535', 21406 'STATE 2 s 10042 10029', 21407 'STATE 3 d 10537 10536', 21408 'STATE 2 s 10538 10042', 21409 'STATE 3 d 10042 10539', 21410 'STATE 5 n 10541 10540', 21411 'STATE 4 i 10058 10542', 21412 'STATE 1 s 10042 10543', 21413 'STATE 1 i 10058 10544', 21414 'STATE 2 m 10042 10545', 21415 'STATE 5 l 10058 10546', 21416 'STATE 1 b 10042 10547', 21417 'STATE 1 k 10058 10548', 21418 'STATE 2 c 10042 10549', 21419 'STATE 1 l 10551 10550', 21420 'STATE 5 e 10552 10042', 21421 'STATE 5 m 10042 10553', 21422 'STATE 5 n 10042 10554', 21423 'STATE 5 e 10093 10555', 21424 'STATE 4 h 10058 10556', 21425 'STATE 5 # 10042 10557', 21426 'STATE 4 u 10058 10558', 21427 'STATE 4 e 10042 10559', 21428 'STATE 1 f 10042 10560', 21429 'STATE 5 p 10058 10561', 21430 'STATE 5 l 10042 10058', 21431 'STATE 4 # 10093 10562', 21432 'STATE 5 w 10093 10042', 21433 'STATE 2 o 10042 10563', 21434 'STATE 2 c 10058 10042', 21435 'STATE 2 t 10042 10564', 21436 'STATE 5 r 10058 10565', 21437 'STATE 5 d 10567 10566', 21438 'STATE 4 t 10042 10568', 21439 'STATE 4 e 10042 10569', 21440 'STATE 1 o 10058 10042', 21441 'STATE 2 h 10042 10570', 21442 'STATE 1 i 10058 10571', 21443 'STATE 4 e 10042 10572', 21444 'STATE 5 t 10058 10573', 21445 'STATE 2 e 10575 10574', 21446 'STATE 2 t 10577 10576', 21447 'STATE 2 c 10042 10029', 21448 'STATE 4 a 10042 10578', 21449 'STATE 5 l 10093 10579', 21450 'STATE 2 p 10029 10580', 21451 'STATE 2 r 10042 10581', 21452 'STATE 1 o 10058 10582', 21453 'STATE 2 s 10583 10058', 21454 'STATE 4 e 10042 10584', 21455 'STATE 5 p 10042 10585', 21456 'STATE 1 o 10058 10586', 21457 'STATE 1 n 10058 10587', 21458 'STATE 4 t 10589 10588', 21459 'STATE 2 x 10058 10093', 21460 'STATE 2 d 10093 10058', 21461 'STATE 4 k 10093 10590', 21462 'STATE 2 m 10592 10591', 21463 'STATE 4 m 10594 10593', 21464 'STATE 4 d 10093 10595', 21465 'STATE 2 g 10058 10596', 21466 'STATE 5 i 10598 10597', 21467 'STATE 5 f 10058 10599', 21468 'STATE 1 # 10042 10600', 21469 'STATE 5 n 10601 10042', 21470 'STATE 5 a 10042 10058', 21471 'STATE 2 a 10058 10602', 21472 'STATE 5 v 10058 10603', 21473 'STATE 2 m 10058 10604', 21474 'STATE 4 c 10058 10042', 21475 'STATE 1 l 10058 10605', 21476 'STATE 1 p 10058 10606', 21477 'STATE 2 g 10058 10042', 21478 'STATE 5 i 10607 10042', 21479 'STATE 2 u 10042 10608', 21480 'STATE 5 e 10058 10324', 21481 'STATE 2 a 10042 10609', 21482 'STATE 2 s 10611 10610', 21483 'STATE 2 i 10058 10612', 21484 'STATE 2 v 10058 10042', 21485 'STATE 2 g 10042 10613', 21486 'STATE 1 y 10042 10614', 21487 'STATE 1 h 10093 10042', 21488 'STATE 1 g 10616 10615', 21489 'STATE 4 i 10058 10029', 21490 'STATE 5 n 10617 10042', 21491 'STATE 5 l 10093 10618', 21492 'STATE 1 i 10058 10619', 21493 'STATE 4 a 10058 10620', 21494 'STATE 5 e 10093 10621', 21495 'STATE 1 # 10623 10622', 21496 'STATE 2 v 10042 10624', 21497 'STATE 2 t 10114 10042', 21498 'STATE 4 y 10626 10625', 21499 'STATE 4 e 10058 10042', 21500 'STATE 5 n 10058 10627', 21501 'STATE 2 t 10042 10628', 21502 'STATE 5 s 10042 10629', 21503 'STATE 2 p 10058 10630', 21504 'STATE 2 b 10042 10631', 21505 'STATE 2 b 10633 10632', 21506 'STATE 1 s 10093 10634', 21507 'STATE 1 t 10042 10635', 21508 'STATE 5 n 10636 10042', 21509 'STATE 5 n 10058 10324', 21510 'STATE 4 # 10042 10637', 21511 'STATE 2 t 10093 10638', 21512 'STATE 2 h 10042 10639', 21513 'STATE 4 t 10641 10640', 21514 'STATE 2 b 10058 10642', 21515 'STATE 1 e 10058 10093', 21516 'STATE 5 y 10058 10643', 21517 'STATE 4 t 10093 10644', 21518 'STATE 1 t 10058 10645', 21519 'STATE 1 e 10093 10058', 21520 'STATE 4 n 10647 10646', 21521 'STATE 2 b 10058 10648', 21522 'STATE 2 v 10058 10649', 21523 'STATE 1 s 10042 10650', 21524 'STATE 1 a 10042 10651', 21525 'STATE 4 g 10652 10093', 21526 'STATE 2 f 10058 10093', 21527 'STATE 2 t 10093 10653', 21528 'STATE 4 m 10093 10654', 21529 'STATE 4 m 10093 10655', 21530 'STATE 4 m 10058 10093', 21531 'STATE 2 c 10058 10656', 21532 'STATE 5 s 10657 10042', 21533 'STATE 4 e 10658 10042', 21534 'STATE 2 e 10042 10659', 21535 'STATE 1 s 10661 10660', 21536 'STATE 4 o 10058 10662', 21537 'STATE 1 u 10058 10663', 21538 'STATE 1 e 10058 10664', 21539 'STATE 2 n 10042 10665', 21540 'STATE 2 y 10042 10058', 21541 'STATE 2 y 10042 10666', 21542 'STATE 1 m 10058 10667', 21543 'STATE 1 s 10058 10042', 21544 'STATE 2 m 10058 10042', 21545 'STATE 5 n 10668 10042', 21546 'STATE 5 o 10670 10669', 21547 'STATE 1 p 10042 10671', 21548 'STATE 2 e 10029 10042', 21549 'STATE 4 a 10058 10093', 21550 'STATE 5 n 10672 10042', 21551 'STATE 5 w 10029 10673', 21552 'STATE 4 o 10058 10042', 21553 'STATE 4 y 10093 10674', 21554 'STATE 5 a 10058 10675', 21555 'STATE 2 v 10676 10093', 21556 'STATE 1 a 10042 10656', 21557 'STATE 4 n 10678 10677', 21558 'STATE 1 a 10042 10679', 21559 'STATE 5 e 10042 10680', 21560 'STATE 2 c 10042 10681', 21561 'STATE 2 p 10058 10682', 21562 'STATE 2 c 10058 10683', 21563 'STATE 4 b 10179 10042', 21564 'STATE 5 a 10685 10684', 21565 'STATE 1 l 10058 10686', 21566 'STATE 2 c 10093 10058', 21567 'STATE 1 s 10058 10093', 21568 'STATE 2 s 10042 10058', 21569 'STATE 4 s 10042 10687', 21570 'STATE 5 o 10689 10688', 21571 'STATE 5 e 10029 10690', 21572 'STATE 5 s 10692 10691', 21573 'STATE 2 b 10694 10693', 21574 'STATE 1 a 10696 10695', 21575 'STATE 4 t 10093 10697', 21576 'STATE 4 e 10163 10058', 21577 'STATE 2 p 10699 10698', 21578 'STATE 1 s 10700 10058', 21579 'STATE 1 o 10058 10701', 21580 'STATE 1 e 10093 10702', 21581 'STATE 4 t 10058 10703', 21582 'STATE 1 x 10042 10704', 21583 'STATE 5 c 10058 10042', 21584 'STATE 2 s 10042 10093', 21585 'STATE 2 v 10093 10705', 21586 'STATE 2 m 10058 10706', 21587 'STATE 4 p 10058 10707', 21588 'STATE 5 n 10058 10042', 21589 'STATE 1 s 10058 10708', 21590 'STATE 2 n 10058 10042', 21591 'STATE 3 b 10058 10042', 21592 'STATE 5 b 10058 10709', 21593 'STATE 5 c 10042 10710', 21594 'STATE 1 g 10042 10711', 21595 'STATE 1 i 10042 10058', 21596 'STATE 1 c 10058 10389', 21597 'STATE 1 e 10042 10712', 21598 'STATE 2 k 10058 10713', 21599 'STATE 2 f 10042 10714', 21600 'STATE 2 b 10058 10042', 21601 'STATE 4 d 10555 10715', 21602 'STATE 1 d 10093 10042', 21603 'STATE 2 i 10029 10716', 21604 'STATE 4 a 10042 10093', 21605 'STATE 4 y 10042 10717', 21606 'STATE 5 # 10042 10430', 21607 'STATE 2 k 10689 10093', 21608 'STATE 5 i 10058 10093', 21609 'STATE 5 # 10719 10718', 21610 'STATE 5 # 10720 10042', 21611 'STATE 1 c 10058 10721', 21612 'STATE 4 g 10042 10722', 21613 'STATE 4 f 10042 10723', 21614 'STATE 1 c 10058 10724', 21615 'STATE 1 o 10058 10725', 21616 'STATE 1 s 10093 10726', 21617 'STATE 4 b 10058 10093', 21618 'STATE 4 s 10093 10727', 21619 'STATE 1 m 10042 10567', 21620 'STATE 4 g 10093 10728', 21621 'STATE 4 k 10058 10093', 21622 'STATE 2 w 10042 10729', 21623 'STATE 2 o 10042 10730', 21624 'STATE 1 i 10042 10731', 21625 'STATE 2 u 10042 10732', 21626 'STATE 5 s 10058 10733', 21627 'STATE 2 t 10735 10734', 21628 'STATE 5 a 10093 10058', 21629 'STATE 4 a 10058 10736', 21630 'STATE 2 g 10058 10737', 21631 'STATE 1 s 10738 10058', 21632 'STATE 4 o 10058 10739', 21633 'STATE 2 t 10740 10093', 21634 'STATE 1 d 10058 10741', 21635 'STATE 2 t 10058 10742', 21636 'STATE 2 h 10042 10743', 21637 'STATE 2 c 10744 10093', 21638 'STATE 2 b 10093 10745', 21639 'STATE 5 u 10746 10470', 21640 'STATE 3 p 10042 10747', 21641 'STATE 5 y 10749 10748', 21642 'STATE 2 t 10042 10750', 21643 'STATE 4 a 10154 10751', 21644 'STATE 2 c 10042 10752', 21645 'STATE 2 u 10042 10753', 21646 'STATE 1 s 10755 10754', 21647 'STATE 4 i 10042 10756', 21648 'STATE 5 # 10042 10757', 21649 'STATE 5 n 10759 10758', 21650 'STATE 1 o 10761 10760', 21651 'STATE 2 f 10762 10042', 21652 'STATE 1 g 10042 10763', 21653 'STATE 2 t 10042 10764', 21654 'STATE 5 # 10765 10058', 21655 'STATE 5 # 10042 10766', 21656 'STATE 2 n 10058 10767', 21657 'STATE 1 a 10058 10612', 21658 'STATE 2 e 10093 10768', 21659 'STATE 5 a 10093 10769', 21660 'STATE 5 a 10470 10093', 21661 'STATE 2 m 10042 10770', 21662 'STATE 4 a 10772 10771', 21663 'STATE 4 u 10058 10773', 21664 'STATE 5 s 10775 10774', 21665 'STATE 5 y 10058 10776', 21666 'STATE 5 a 10058 10777', 21667 'STATE 1 s 10093 10058', 21668 'STATE 4 o 10042 10778', 21669 'STATE 4 l 10058 10779', 21670 'STATE 4 s 10093 10058', 21671 'STATE 4 l 10093 10058', 21672 'STATE 1 a 10093 10058', 21673 'STATE 2 v 10093 10058', 21674 'STATE 4 d 10058 10780', 21675 'STATE 1 n 10058 10781', 21676 'STATE 4 t 10093 10058', 21677 'STATE 2 h 10093 10782', 21678 'STATE 4 s 10058 10093', 21679 'STATE 4 u 10042 10783', 21680 'STATE 4 y 10785 10784', 21681 'STATE 1 u 10058 10786', 21682 'STATE 2 c 10042 10787', 21683 'STATE 4 t 10042 10788', 21684 'STATE 2 u 10042 10789', 21685 'STATE 1 p 10058 10790', 21686 'STATE 2 t 10058 10791', 21687 'STATE 2 t 10042 10425', 21688 'STATE 1 h 10042 10792', 21689 'STATE 4 a 10794 10793', 21690 'STATE 5 c 10042 10795', 21691 'STATE 1 m 10042 10796', 21692 'STATE 1 a 10798 10797', 21693 'STATE 4 t 10042 10799', 21694 'STATE 4 t 10058 10042', 21695 'STATE 2 h 10058 10800', 21696 'STATE 2 s 10058 10801', 21697 'STATE 1 l 10058 10802', 21698 'STATE 5 e 10042 10373', 21699 'STATE 5 n 10804 10803', 21700 'STATE 5 o 10093 10805', 21701 'STATE 1 y 10058 10806', 21702 'STATE 2 n 10042 10029', 21703 'STATE 4 e 10808 10807', 21704 'STATE 1 m 10042 10809', 21705 'STATE 4 a 10042 10810', 21706 'STATE 2 c 10058 10811', 21707 'STATE 2 s 10093 10058', 21708 'STATE 1 l 10093 10042', 21709 'STATE 5 o 10058 10093', 21710 'STATE 4 n 10093 10812', 21711 'STATE 4 e 10058 10813', 21712 'STATE 4 n 10058 10093', 21713 'STATE 2 v 10058 10814', 21714 'STATE 4 b 10058 10815', 21715 'STATE 3 g 10042 10816', 21716 'STATE 5 # 10818 10817', 21717 'STATE 2 n 10042 10819', 21718 'STATE 4 t 10042 10058', 21719 'STATE 5 e 10042 10820', 21720 'STATE 1 s 10042 10821', 21721 'STATE 2 o 10042 10822', 21722 'STATE 1 y 10058 10823', 21723 'STATE 1 u 10058 10824', 21724 'STATE 4 e 10042 10825', 21725 'STATE 5 r 10042 10826', 21726 'STATE 1 s 10029 10042', 21727 'STATE 1 j 10042 10827', 21728 'STATE 4 e 10042 10828', 21729 'STATE 2 r 10058 10829', 21730 'STATE 2 t 10042 10830', 21731 'STATE 4 c 10058 10831', 21732 'STATE 1 a 10042 10124', 21733 'STATE 1 e 10058 10042', 21734 'STATE 1 a 10058 10832', 21735 'STATE 5 l 10833 10042', 21736 'STATE 1 a 10042 10058', 21737 'STATE 5 i 10093 10594', 21738 'STATE 1 n 10093 10834', 21739 'STATE 4 o 10836 10835', 21740 'STATE 5 o 10042 10837', 21741 'STATE 2 v 10838 10058', 21742 'STATE 4 e 10552 10058', 21743 'STATE 2 w 10093 10058', 21744 'STATE 1 s 10093 10839', 21745 'STATE 1 m 10058 10840', 21746 'STATE 5 d 10058 10841', 21747 'STATE 2 s 10093 10741', 21748 'STATE 2 e 10042 10842', 21749 'STATE 4 o 10091 10843', 21750 'STATE 1 g 10545 10042', 21751 'STATE 1 e 10042 10844', 21752 'STATE 5 # 10042 10845', 21753 'STATE 2 l 10042 10846', 21754 'STATE 2 i 10042 10668', 21755 'STATE 1 e 10848 10847', 21756 'STATE 1 g 10042 10849', 21757 'STATE 4 y 10042 10850', 21758 'STATE 1 m 10042 10851', 21759 'STATE 4 i 10853 10852', 21760 'STATE 1 w 10029 10042', 21761 'STATE 4 i 10855 10854', 21762 'STATE 2 v 10058 10856', 21763 'STATE 2 n 10058 10857', 21764 'STATE 1 n 10042 10058', 21765 'STATE 1 e 10042 10858', 21766 'STATE 5 e 10093 10859', 21767 'STATE 4 y 10861 10860', 21768 'STATE 2 t 10058 10862', 21769 'STATE 5 d 10058 10863', 21770 'STATE 1 o 10058 10864', 21771 'STATE 1 p 10058 10042', 21772 'STATE 2 m 10093 10865', 21773 'STATE 2 t 10058 10866', 21774 'STATE 1 a 10042 10867', 21775 'STATE 5 s 10869 10868', 21776 'STATE 2 r 10042 10870', 21777 'STATE 5 s 10042 10871', 21778 'STATE 1 t 10042 10872', 21779 'STATE 2 h 10832 10873', 21780 'STATE 2 r 10042 10658', 21781 'STATE 1 a 10042 10874', 21782 'STATE 4 a 10042 10875', 21783 'STATE 2 e 10876 10042', 21784 'STATE 1 t 10042 10877', 21785 'STATE 1 m 10042 10878', 21786 'STATE 5 t 10058 10879', 21787 'STATE 5 a 10042 10880', 21788 'STATE 5 h 10042 10881', 21789 'STATE 2 t 10058 10294', 21790 'STATE 2 m 10042 10058', 21791 'STATE 1 r 10058 10635', 21792 'STATE 2 u 10883 10882', 21793 'STATE 1 e 10042 10058', 21794 'STATE 5 u 10058 10884', 21795 'STATE 5 r 10058 10885', 21796 'STATE 5 g 10042 10058', 21797 'STATE 4 d 10042 10886', 21798 'STATE 5 c 10058 10366', 21799 'STATE 2 s 10042 10887', 21800 'STATE 4 e 10889 10888', 21801 'STATE 4 i 10890 10042', 21802 'STATE 2 u 10042 10891', 21803 'STATE 5 l 10042 10892', 21804 'STATE 2 p 10042 10893', 21805 'STATE 1 n 10058 10894', 21806 'STATE 1 i 10042 10895', 21807 'STATE 4 m 10042 10896', 21808 'STATE 4 # 10042 10897', 21809 'STATE 1 n 10042 10898', 21810 'STATE 5 e 10042 10029', 21811 'STATE 5 u 10839 10899', 21812 'STATE 5 o 10042 10900', 21813 'STATE 2 m 10058 10901', 21814 'STATE 2 y 10903 10902', 21815 'STATE 1 e 10058 10904', 21816 'STATE 1 e 10058 10905', 21817 'STATE 1 n 10042 10906', 21818 'STATE 2 v 10908 10907', 21819 'STATE 2 o 10042 10909', 21820 'STATE 4 a 10911 10910', 21821 'STATE 1 q 10042 10912', 21822 'STATE 2 t 10058 10913', 21823 'STATE 1 a 10058 10914', 21824 'STATE 2 w 10042 10915', 21825 'STATE 2 h 10058 10916', 21826 'STATE 2 i 10042 10917', 21827 'STATE 2 c 10042 10918', 21828 'STATE 4 h 10042 10919', 21829 'STATE 1 v 10042 10920', 21830 'STATE 1 p 10042 10921', 21831 'STATE 2 f 10923 10922', 21832 'STATE 1 c 10058 10924', 21833 'STATE 5 s 10042 10925', 21834 'STATE 1 a 10058 10926', 21835 'STATE 4 l 10058 10042', 21836 'STATE 4 s 10042 10927', 21837 'STATE 2 p 10058 10928', 21838 'STATE 1 o 10058 10929', 21839 'STATE 4 v 10093 10930', 21840 'STATE 4 t 10093 10931', 21841 'STATE 4 i 10042 10932', 21842 'STATE 4 i 10934 10933', 21843 'STATE 1 i 10058 10935', 21844 'STATE 2 p 10042 10936', 21845 'STATE 1 c 10042 10937', 21846 'STATE 1 i 10042 10938', 21847 'STATE 4 k 10042 10939', 21848 'STATE 1 n 10058 10042', 21849 'STATE 2 r 10042 10940', 21850 'STATE 1 n 10042 10941', 21851 'STATE 1 # 10042 10093', 21852 'STATE 4 o 10042 10942', 21853 'STATE 4 a 10944 10943', 21854 'STATE 4 f 10832 10042', 21855 'STATE 1 m 10058 10945', 21856 'STATE 5 s 10058 10946', 21857 'STATE 2 f 10042 10567', 21858 'STATE 4 m 10058 10947', 21859 'STATE 5 a 10058 10042', 21860 'STATE 1 i 10058 10121', 21861 'STATE 1 e 10058 10948', 21862 'STATE 1 s 10093 10949', 21863 'STATE 4 g 10093 10950', 21864 'STATE 2 t 10042 10412', 21865 'STATE 1 l 10951 10042', 21866 'STATE 2 t 10042 10952', 21867 'STATE 5 c 10042 10953', 21868 'STATE 1 e 10058 10954', 21869 'STATE 2 l 10042 10058', 21870 'STATE 1 c 10042 10955', 21871 'STATE 4 l 10042 10956', 21872 'STATE 2 b 10058 10957', 21873 'STATE 2 d 10058 10958', 21874 'STATE 4 y 10029 10959', 21875 'STATE 5 # 10029 10960', 21876 'STATE 1 s 10058 10961', 21877 'STATE 4 c 10042 10962', 21878 'STATE 1 g 10042 10963', 21879 'STATE 2 p 10965 10964', 21880 'STATE 1 f 10058 10121', 21881 'STATE 1 c 10093 10966', 21882 'STATE 4 s 10968 10967', 21883 'STATE 2 m 10042 10294', 21884 'STATE 2 h 10058 10969', 21885 'STATE 5 m 10058 10042', 21886 'STATE 1 c 10058 10970', 21887 'STATE 1 u 10042 10971', 21888 'STATE 5 d 10042 10972', 21889 'STATE 2 n 10973 10058', 21890 'STATE 1 h 10058 10974', 21891 'STATE 1 d 10976 10975', 21892 'STATE 4 e 10978 10977', 21893 'STATE 1 h 10029 10042', 21894 'STATE 1 n 10979 10042', 21895 'STATE 1 t 10042 10980', 21896 'STATE 5 r 10982 10981', 21897 'STATE 4 s 10983 10058', 21898 'STATE 4 n 10093 10984', 21899 'STATE 4 b 10093 10058', 21900 'STATE 1 n 10058 10093', 21901 'STATE 5 e 10985 10042', 21902 'STATE 5 l 10042 10986', 21903 'STATE 2 t 10058 10987', 21904 'STATE 5 a 10042 10988', 21905 'STATE 1 i 10058 10042', 21906 'STATE 1 k 10058 10989', 21907 'STATE 5 t 10029 10042', 21908 'STATE 4 e 10042 10029', 21909 'STATE 1 h 10029 10990', 21910 'STATE 1 h 10042 10991', 21911 'STATE 5 s 10042 10992', 21912 'STATE 2 i 10042 10993', 21913 'STATE 2 w 10327 10994', 21914 'STATE 1 n 10995 10058', 21915 'STATE 5 t 10058 10996', 21916 'STATE 1 e 10058 10744', 21917 'STATE 2 n 10042 10997', 21918 'STATE 5 k 10042 10937', 21919 'STATE 1 o 10042 10998', 21920 'STATE 2 h 10999 10042', 21921 'STATE 2 b 10042 11000', 21922 'STATE 1 m 10042 10029', 21923 'STATE 5 l 10042 10029', 21924 'STATE 4 m 10927 10058', 21925 'STATE 1 h 10042 11001', 21926 'STATE 1 c 11003 11002', 21927 'STATE 2 g 10058 10093', 21928 'STATE 1 m 10093 10777', 21929 'STATE 2 u 10042 11004', 21930 'STATE 2 d 10042 11005', 21931 'STATE 4 e 10042 10058', 21932 'STATE 2 m 10042 11006', 21933 'STATE 5 n 10937 11007', 21934 'STATE 2 t 10058 11008', 21935 'STATE 2 k 10058 10093', 21936 'STATE 2 i 10042 10937', 21937 'STATE 2 i 10042 11009', 21938 'STATE 1 e 10058 11010', 21939 'STATE 1 i 10042 11011', 21940 'STATE 2 b 10058 11012', 21941 'STATE 1 l 10042 10058', 21942 'STATE 2 v 10042 11013', 21943 'STATE 2 t 10801 11014', 21944 'STATE 5 a 11015 10058', 21945 'STATE 1 o 10058 11016', 21946 'STATE 5 c 10042 10058', 21947 'STATE 4 s 11017 10058', 21948 'STATE 2 i 10058 10042', 21949 'STATE 1 i 10093 10058', 21950 'INDEX 11018 s', 21951 'STATE 4 # 11020 11019', 21952 'STATE 4 h 11022 11021', 21953 'STATE 3 t 11024 11023', 21954 'STATE 4 s 11026 11025', 21955 'STATE 3 t 11028 11027', 21956 'STATE 3 s 11030 11029', 21957 'PHONE s', 21958 'STATE 5 h 11032 11031', 21959 'STATE 3 e 11034 11033', 21960 'STATE 1 # 11036 11035', 21961 'PHONE epsilon', 21962 'STATE 3 u 11038 11037', 21963 'STATE 1 n 11024 11039', 21964 'STATE 2 0 11041 11040', 21965 'STATE 3 t 11028 11042', 21966 'STATE 5 p 11044 11043', 21967 'STATE 6 o 11028 11045', 21968 'PHONE sh', 21969 'STATE 3 i 11046 11035', 21970 'STATE 3 i 11048 11047', 21971 'STATE 2 a 11049 11024', 21972 'STATE 2 e 11050 11024', 21973 'STATE 4 t 11052 11051', 21974 'STATE 4 z 11035 11053', 21975 'STATE 4 c 11054 11024', 21976 'STATE 1 0 11028 11055', 21977 'STATE 3 i 11024 11028', 21978 'STATE 2 n 11057 11056', 21979 'STATE 6 n 11024 11035', 21980 'STATE 2 t 11059 11058', 21981 'STATE 2 a 11028 11060', 21982 'STATE 1 h 11024 11061', 21983 'STATE 1 i 11024 11062', 21984 'STATE 3 s 11064 11063', 21985 'STATE 6 w 11065 11024', 21986 'STATE 4 j 11035 11066', 21987 'STATE 6 o 11068 11067', 21988 'STATE 1 # 11070 11069', 21989 'STATE 2 m 11028 11071', 21990 'STATE 1 # 11024 11028', 21991 'STATE 3 k 11024 11072', 21992 'STATE 3 e 11024 11073', 21993 'STATE 2 o 11028 11074', 21994 'PHONE z', 21995 'STATE 1 l 11024 11075', 21996 'STATE 4 k 11024 11076', 21997 'STATE 5 o 11078 11077', 21998 'STATE 1 # 11024 11079', 21999 'STATE 4 r 11081 11080', 22000 'STATE 6 i 11083 11082', 22001 'STATE 2 0 11035 11024', 22002 'STATE 5 o 11085 11084', 22003 'STATE 2 f 11087 11086', 22004 'STATE 1 0 11028 11088', 22005 'STATE 3 p 11024 11089', 22006 'STATE 3 h 11024 11090', 22007 'STATE 2 e 11061 11091', 22008 'STATE 1 u 11024 11092', 22009 'STATE 6 n 11094 11093', 22010 'STATE 4 u 11096 11095', 22011 'STATE 6 n 11035 11024', 22012 'STATE 2 r 11024 11061', 22013 'STATE 6 a 11024 11097', 22014 'STATE 5 i 11024 11035', 22015 'STATE 3 z 11028 11098', 22016 'STATE 1 0 11035 11024', 22017 'STATE 6 a 11100 11099', 22018 'STATE 1 s 11061 11101', 22019 'STATE 5 t 11024 11102', 22020 'STATE 3 o 11024 11103', 22021 'STATE 2 f 11028 11104', 22022 'STATE 3 c 11024 11105', 22023 'STATE 1 i 11024 11106', 22024 'STATE 2 u 11061 11107', 22025 'STATE 1 t 11028 11024', 22026 'STATE 4 z 11109 11108', 22027 'STATE 4 i 11111 11110', 22028 'STATE 2 e 11113 11112', 22029 'STATE 5 r 11035 11114', 22030 'STATE 5 r 11115 11024', 22031 'STATE 1 # 11116 11035', 22032 'STATE 6 o 11028 11117', 22033 'STATE 3 u 11028 11118', 22034 'STATE 3 u 11024 11119', 22035 'STATE 2 b 11121 11120', 22036 'STATE 3 a 11024 11028', 22037 'STATE 2 i 11028 11122', 22038 'STATE 2 k 11124 11123', 22039 'STATE 1 n 11126 11125', 22040 'STATE 1 o 11024 11127', 22041 'STATE 4 m 11129 11128', 22042 'STATE 6 o 11024 11035', 22043 'STATE 4 z 11035 11130', 22044 'STATE 5 o 11132 11131', 22045 'STATE 5 a 11134 11133', 22046 'STATE 1 m 11024 11135', 22047 'STATE 2 i 11136 11024', 22048 'STATE 4 u 11137 11024', 22049 'STATE 6 a 11024 11138', 22050 'STATE 1 w 11140 11139', 22051 'STATE 5 m 11119 11028', 22052 'STATE 2 l 11024 11028', 22053 'STATE 2 g 11103 11141', 22054 'STATE 3 u 11028 11142', 22055 'STATE 1 p 11144 11143', 22056 'STATE 3 f 11024 11145', 22057 'STATE 3 e 11024 11146', 22058 'STATE 1 o 11061 11147', 22059 'STATE 3 a 11024 11061', 22060 'STATE 2 c 11024 11148', 22061 'STATE 4 e 11150 11149', 22062 'STATE 5 # 11061 11151', 22063 'STATE 4 c 11024 11152', 22064 'STATE 5 g 11154 11153', 22065 'STATE 3 n 11035 11155', 22066 'STATE 6 v 11061 11156', 22067 'STATE 4 i 11035 11157', 22068 'STATE 1 # 11024 11158', 22069 'STATE 1 # 11035 11024', 22070 'STATE 6 e 11035 11024', 22071 'STATE 6 e 11159 11035', 22072 'STATE 3 i 11161 11160', 22073 'STATE 5 # 11028 11024', 22074 'STATE 2 d 11162 11028', 22075 'STATE 3 i 11028 11163', 22076 'STATE 1 # 11165 11164', 22077 'STATE 5 u 11028 11166', 22078 'STATE 3 a 11168 11167', 22079 'STATE 1 i 11024 11061', 22080 'STATE 1 t 11061 11169', 22081 'STATE 1 i 11171 11170', 22082 'STATE 4 u 11173 11172', 22083 'STATE 3 r 11024 11174', 22084 'STATE 5 s 11061 11175', 22085 'STATE 4 p 11024 11176', 22086 'PHONE zh', 22087 'STATE 3 e 11061 11024', 22088 'STATE 3 l 11035 11153', 22089 'STATE 6 s 11178 11177', 22090 'STATE 1 l 11028 11024', 22091 'STATE 1 d 11024 11179', 22092 'STATE 3 u 11035 11180', 22093 'STATE 1 e 11028 11181', 22094 'STATE 5 a 11182 11028', 22095 'STATE 3 i 11028 11183', 22096 'STATE 6 # 11024 11184', 22097 'STATE 1 r 11186 11185', 22098 'STATE 2 b 11028 11187', 22099 'STATE 5 l 11028 11188', 22100 'STATE 2 p 11190 11189', 22101 'STATE 2 z 11061 11191', 22102 'STATE 1 l 11061 11192', 22103 'STATE 1 a 11024 11193', 22104 'STATE 2 t 11024 11061', 22105 'STATE 4 c 11195 11194', 22106 'STATE 5 r 11197 11196', 22107 'STATE 3 n 11199 11198', 22108 'STATE 3 r 11024 11200', 22109 'STATE 3 d 11061 11201', 22110 'STATE 1 # 11024 11202', 22111 'STATE 1 p 11061 11024', 22112 'STATE 1 b 11024 11203', 22113 'STATE 2 r 11024 11204', 22114 'STATE 6 c 11028 11205', 22115 'STATE 2 r 11024 11028', 22116 'STATE 3 o 11028 11024', 22117 'STATE 5 i 11028 11103', 22118 'STATE 2 r 11207 11206', 22119 'STATE 2 g 11028 11208', 22120 'STATE 5 o 11024 11209', 22121 'STATE 6 # 11028 11210', 22122 'STATE 3 o 11212 11211', 22123 'STATE 3 o 11061 11024', 22124 'STATE 2 y 11024 11213', 22125 'STATE 1 s 11061 11214', 22126 'STATE 2 k 11061 11024', 22127 'STATE 4 i 11216 11215', 22128 'STATE 5 i 11218 11217', 22129 'STATE 6 l 11153 11219', 22130 'STATE 3 n 11221 11220', 22131 'STATE 2 o 11223 11222', 22132 'STATE 5 y 11061 11224', 22133 'STATE 5 i 11226 11225', 22134 'STATE 3 t 11024 11227', 22135 'STATE 2 i 11024 11228', 22136 'STATE 6 d 11028 11229', 22137 'STATE 3 o 11024 11035', 22138 'STATE 1 l 11028 11230', 22139 'STATE 2 h 11028 11231', 22140 'STATE 5 l 11028 11232', 22141 'STATE 5 # 11233 11024', 22142 'STATE 2 r 11028 11234', 22143 'STATE 5 e 11024 11235', 22144 'STATE 3 h 11237 11236', 22145 'STATE 2 o 11061 11238', 22146 'STATE 1 u 11061 11239', 22147 'STATE 1 a 11061 11190', 22148 'STATE 3 x 11028 11240', 22149 'STATE 5 a 11242 11241', 22150 'STATE 2 e 11243 11024', 22151 'STATE 2 o 11035 11024', 22152 'STATE 3 e 11244 11024', 22153 'STATE 6 e 11153 11245', 22154 'STATE 6 e 11035 11246', 22155 'STATE 5 # 11248 11247', 22156 'STATE 5 r 11250 11249', 22157 'STATE 1 e 11061 11024', 22158 'STATE 6 l 11061 11251', 22159 'STATE 6 c 11061 11024', 22160 'STATE 3 w 11061 11252', 22161 'STATE 1 c 11024 11253', 22162 'STATE 1 f 11024 11254', 22163 'STATE 1 t 11028 11255', 22164 'STATE 1 l 11024 11256', 22165 'STATE 6 r 11028 11257', 22166 'STATE 2 l 11028 11024', 22167 'STATE 2 h 11024 11258', 22168 'STATE 6 n 11260 11259', 22169 'STATE 3 e 11261 11061', 22170 'STATE 2 c 11024 11262', 22171 'STATE 1 u 11264 11263', 22172 'STATE 2 l 11266 11265', 22173 'STATE 4 p 11268 11267', 22174 'STATE 2 p 11270 11269', 22175 'STATE 6 # 11272 11271', 22176 'STATE 5 o 11024 11061', 22177 'STATE 5 m 11061 11273', 22178 'STATE 2 e 11153 11024', 22179 'STATE 6 g 11024 11274', 22180 'STATE 5 d 11276 11275', 22181 'STATE 3 p 11024 11277', 22182 'STATE 3 i 11061 11278', 22183 'STATE 1 # 11061 11279', 22184 'STATE 2 c 11061 11280', 22185 'STATE 1 0 11282 11281', 22186 'STATE 4 o 11284 11283', 22187 'STATE 1 h 11028 11285', 22188 'STATE 6 i 11287 11286', 22189 'STATE 1 b 11028 11288', 22190 'STATE 6 v 11028 11289', 22191 'STATE 2 l 11291 11290', 22192 'STATE 2 r 11140 11024', 22193 'STATE 5 i 11024 11028', 22194 'STATE 1 q 11024 11292', 22195 'STATE 1 i 11061 11293', 22196 'STATE 2 l 11061 11294', 22197 'STATE 2 l 11024 11061', 22198 'STATE 2 c 11024 11295', 22199 'STATE 1 l 11061 11296', 22200 'STATE 4 o 11298 11297', 22201 'STATE 3 w 11061 11024', 22202 'STATE 3 u 11300 11299', 22203 'STATE 6 i 11061 11301', 22204 'STATE 6 k 11024 11302', 22205 'STATE 2 n 11153 11303', 22206 'STATE 5 l 11061 11024', 22207 'STATE 2 i 11035 11024', 22208 'STATE 5 r 11305 11304', 22209 'STATE 3 a 11024 11306', 22210 'STATE 3 a 11308 11307', 22211 'STATE 5 d 11061 11024', 22212 'STATE 1 r 11061 11309', 22213 'STATE 3 d 11061 11310', 22214 'STATE 3 r 11024 11311', 22215 'STATE 3 i 11028 11312', 22216 'STATE 1 g 11314 11313', 22217 'STATE 1 l 11028 11315', 22218 'STATE 1 i 11024 11316', 22219 'STATE 5 u 11028 11317', 22220 'STATE 5 f 11024 11028', 22221 'STATE 1 o 11028 11318', 22222 'STATE 1 b 11028 11319', 22223 'STATE 2 w 11024 11320', 22224 'STATE 6 n 11028 11024', 22225 'STATE 2 f 11024 11321', 22226 'STATE 2 a 11061 11322', 22227 'STATE 2 g 11061 11323', 22228 'STATE 1 a 11061 11324', 22229 'STATE 1 a 11061 11024', 22230 'STATE 3 g 11326 11325', 22231 'STATE 5 r 11328 11327', 22232 'STATE 3 i 11330 11329', 22233 'STATE 5 v 11024 11331', 22234 'STATE 1 e 11061 11332', 22235 'STATE 1 t 11061 11333', 22236 'STATE 3 o 11024 11334', 22237 'STATE 2 r 11336 11335', 22238 'STATE 2 e 11338 11337', 22239 'STATE 3 p 11024 11339', 22240 'STATE 3 l 11024 11340', 22241 'STATE 2 r 11061 11341', 22242 'STATE 3 u 11024 11061', 22243 'STATE 6 s 11061 11342', 22244 'STATE 2 u 11024 11343', 22245 'STATE 4 m 11061 11024', 22246 'STATE 5 i 11345 11344', 22247 'STATE 2 a 11028 11024', 22248 'STATE 1 h 11024 11346', 22249 'STATE 1 c 11348 11347', 22250 'STATE 2 c 11028 11349', 22251 'STATE 2 l 11028 11350', 22252 'STATE 5 e 11352 11351', 22253 'STATE 6 l 11028 11353', 22254 'STATE 1 e 11264 11061', 22255 'STATE 2 g 11061 11024', 22256 'STATE 2 d 11061 11354', 22257 'STATE 2 e 11356 11355', 22258 'STATE 5 e 11358 11357', 22259 'STATE 4 b 11061 11359', 22260 'STATE 3 a 11361 11360', 22261 'STATE 2 v 11061 11362', 22262 'STATE 3 e 11364 11363', 22263 'STATE 5 t 11061 11365', 22264 'STATE 5 # 11024 11366', 22265 'STATE 6 e 11061 11367', 22266 'STATE 3 a 11024 11035', 22267 'STATE 3 a 11153 11024', 22268 'STATE 3 i 11369 11368', 22269 'STATE 5 n 11371 11370', 22270 'STATE 3 i 11061 11372', 22271 'STATE 3 y 11061 11373', 22272 'STATE 1 o 11024 11061', 22273 'STATE 2 w 11061 11374', 22274 'STATE 2 b 11024 11375', 22275 'STATE 1 u 11024 11376', 22276 'STATE 4 o 11024 11377', 22277 'STATE 1 f 11379 11378', 22278 'STATE 2 o 11028 11024', 22279 'STATE 2 u 11140 11024', 22280 'STATE 1 v 11024 11380', 22281 'STATE 5 r 11381 11024', 22282 'STATE 6 f 11028 11382', 22283 'STATE 5 i 11028 11383', 22284 'STATE 1 d 11024 11384', 22285 'STATE 1 d 11028 11385', 22286 'STATE 2 j 11024 11386', 22287 'STATE 1 a 11388 11387', 22288 'STATE 1 r 11390 11389', 22289 'STATE 1 n 11024 11061', 22290 'STATE 2 d 11392 11391', 22291 'STATE 6 # 11394 11393', 22292 'STATE 1 i 11061 11395', 22293 'STATE 1 # 11397 11396', 22294 'STATE 2 e 11398 11024', 22295 'STATE 3 b 11061 11399', 22296 'STATE 2 h 11401 11400', 22297 'STATE 2 r 11403 11402', 22298 'STATE 2 d 11024 11404', 22299 'STATE 6 e 11061 11405', 22300 'STATE 6 g 11061 11406', 22301 'STATE 3 u 11408 11407', 22302 'STATE 2 w 11061 11409', 22303 'STATE 1 # 11411 11410', 22304 'STATE 6 t 11061 11412', 22305 'STATE 2 i 11024 11413', 22306 'STATE 3 l 11024 11414', 22307 'STATE 2 h 11061 11415', 22308 'STATE 1 c 11024 11416', 22309 'STATE 6 t 11418 11417', 22310 'STATE 3 i 11024 11419', 22311 'STATE 1 b 11421 11420', 22312 'STATE 2 u 11024 11422', 22313 'STATE 4 y 11024 11423', 22314 'STATE 6 # 11024 11424', 22315 'STATE 2 l 11426 11425', 22316 'STATE 2 u 11028 11427', 22317 'STATE 5 # 11028 11428', 22318 'STATE 6 s 11024 11028', 22319 'STATE 5 e 11028 11429', 22320 'STATE 2 m 11061 11430', 22321 'STATE 2 r 11061 11395', 22322 'STATE 2 r 11432 11431', 22323 'STATE 2 g 11024 11061', 22324 'STATE 4 l 11434 11433', 22325 'STATE 4 r 11435 11024', 22326 'STATE 1 0 11437 11436', 22327 'STATE 3 i 11028 11438', 22328 'STATE 2 n 11061 11024', 22329 'STATE 3 i 11178 11439', 22330 'STATE 2 r 11441 11440', 22331 'STATE 6 # 11442 11061', 22332 'STATE 2 r 11061 11024', 22333 'STATE 5 e 11024 11443', 22334 'STATE 3 y 11061 11024', 22335 'STATE 6 a 11061 11444', 22336 'STATE 1 # 11061 11445', 22337 'STATE 2 v 11061 11446', 22338 'STATE 6 g 11448 11447', 22339 'STATE 5 t 11061 11024', 22340 'STATE 3 o 11450 11449', 22341 'STATE 2 a 11061 11451', 22342 'STATE 1 r 11061 11452', 22343 'STATE 5 s 11453 11024', 22344 'STATE 3 o 11061 11454', 22345 'STATE 3 o 11061 11455', 22346 'STATE 3 e 11061 11456', 22347 'STATE 1 h 11061 11024', 22348 'STATE 1 b 11061 11457', 22349 'STATE 1 r 11024 11458', 22350 'STATE 6 y 11024 11459', 22351 'STATE 5 a 11024 11061', 22352 'STATE 3 k 11024 11460', 22353 'STATE 1 l 11462 11461', 22354 'STATE 2 u 11024 11463', 22355 'STATE 4 i 11024 11028', 22356 'STATE 1 j 11465 11464', 22357 'STATE 6 i 11028 11024', 22358 'STATE 1 g 11028 11466', 22359 'STATE 6 s 11028 11467', 22360 'STATE 2 c 11028 11468', 22361 'STATE 5 i 11028 11024', 22362 'STATE 2 t 11024 11028', 22363 'STATE 1 l 11024 11469', 22364 'STATE 1 t 11061 11470', 22365 'STATE 1 t 11061 11224', 22366 'STATE 3 p 11024 11471', 22367 'STATE 2 o 11024 11472', 22368 'STATE 3 e 11028 11024', 22369 'STATE 3 u 11024 11473', 22370 'STATE 3 i 11028 11024', 22371 'STATE 4 n 11028 11024', 22372 'STATE 3 y 11474 11024', 22373 'STATE 2 m 11061 11024', 22374 'STATE 6 a 11061 11273', 22375 'STATE 1 r 11024 11061', 22376 'STATE 6 g 11190 11475', 22377 'STATE 5 r 11061 11024', 22378 'STATE 6 e 11061 11024', 22379 'STATE 1 p 11061 11476', 22380 'STATE 5 b 11061 11477', 22381 'STATE 1 # 11024 11061', 22382 'STATE 3 e 11479 11478', 22383 'STATE 6 # 11481 11480', 22384 'STATE 2 m 11061 11482', 22385 'STATE 2 h 11061 11483', 22386 'STATE 3 i 11061 11024', 22387 'STATE 5 m 11061 11024', 22388 'STATE 6 d 11024 11154', 22389 'STATE 1 h 11061 11484', 22390 'STATE 2 e 11486 11485', 22391 'STATE 2 c 11024 11487', 22392 'STATE 5 a 11489 11488', 22393 'STATE 2 r 11491 11490', 22394 'STATE 5 e 11024 11492', 22395 'STATE 5 f 11024 11493', 22396 'STATE 5 # 11028 11494', 22397 'STATE 4 l 11496 11495', 22398 'STATE 6 # 11028 11024', 22399 'STATE 1 o 11028 11497', 22400 'STATE 5 b 11028 11498', 22401 'STATE 2 s 11028 11499', 22402 'STATE 2 n 11501 11500', 22403 'STATE 1 m 11061 11502', 22404 'STATE 4 q 11024 11503', 22405 'STATE 1 r 11061 11024', 22406 'STATE 6 y 11505 11504', 22407 'STATE 2 a 11061 11024', 22408 'STATE 3 a 11507 11506', 22409 'STATE 2 a 11061 11508', 22410 'STATE 5 c 11061 11024', 22411 'STATE 5 y 11510 11509', 22412 'STATE 1 h 11061 11511', 22413 'STATE 2 j 11024 11512', 22414 'STATE 2 p 11061 11513', 22415 'STATE 2 f 11061 11024', 22416 'STATE 6 h 11061 11514', 22417 'STATE 6 # 11516 11515', 22418 'STATE 1 i 11024 11517', 22419 'STATE 3 e 11442 11024', 22420 'STATE 1 l 11024 11061', 22421 'STATE 2 d 11024 11518', 22422 'STATE 2 a 11024 11519', 22423 'STATE 2 c 11024 11520', 22424 'STATE 1 # 11061 11024', 22425 'STATE 6 a 11024 11521', 22426 'STATE 5 s 11024 11522', 22427 'STATE 5 d 11024 11523', 22428 'STATE 1 r 11525 11524', 22429 'STATE 1 r 11024 11526', 22430 'STATE 5 a 11028 11527', 22431 'STATE 3 a 11528 11028', 22432 'STATE 2 t 11028 11024', 22433 'STATE 1 d 11079 11529', 22434 'STATE 1 i 11061 11024', 22435 'STATE 1 p 11024 11530', 22436 'STATE 4 a 11532 11531', 22437 'STATE 3 i 11024 11533', 22438 'STATE 3 i 11061 11507', 22439 'STATE 1 r 11474 11534', 22440 'STATE 2 e 11061 11024', 22441 'STATE 5 # 11024 11535', 22442 'STATE 3 a 11536 11024', 22443 'STATE 3 t 11024 11537', 22444 'STATE 5 t 11024 11538', 22445 'STATE 6 u 11024 11539', 22446 'STATE 2 l 11061 11491', 22447 'STATE 5 s 11061 11540', 22448 'STATE 3 a 11024 11541', 22449 'STATE 1 # 11061 11542', 22450 'STATE 2 t 11024 11543', 22451 'STATE 5 e 11154 11024', 22452 'STATE 3 i 11061 11544', 22453 'STATE 3 o 11024 11545', 22454 'STATE 6 g 11024 11546', 22455 'STATE 2 a 11547 11024', 22456 'STATE 4 i 11024 11314', 22457 'STATE 5 a 11024 11548', 22458 'STATE 6 g 11028 11549', 22459 'STATE 6 r 11028 11024', 22460 'STATE 2 a 11028 11550', 22461 'STATE 1 c 11028 11551', 22462 'STATE 1 n 11024 11552', 22463 'STATE 1 e 11061 11553', 22464 'STATE 3 t 11024 11554', 22465 'STATE 3 r 11024 11555', 22466 'STATE 2 e 11557 11556', 22467 'STATE 2 r 11491 11024', 22468 'STATE 2 o 11061 11558', 22469 'STATE 2 e 11273 11024', 22470 'STATE 1 # 11024 11559', 22471 'STATE 1 g 11024 11560', 22472 'STATE 1 # 11273 11024', 22473 'STATE 6 # 11024 11561', 22474 'STATE 6 s 11061 11024', 22475 'STATE 2 r 11061 11562', 22476 'STATE 2 c 11564 11563', 22477 'STATE 6 r 11024 11061', 22478 'STATE 1 k 11061 11565', 22479 'STATE 1 o 11024 11566', 22480 'STATE 5 c 11028 11024', 22481 'STATE 4 o 11028 11567', 22482 'STATE 4 m 11028 11568', 22483 'STATE 2 t 11028 11569', 22484 'STATE 5 # 11028 11570', 22485 'STATE 2 h 11024 11061', 22486 'STATE 1 i 11061 11571', 22487 'STATE 3 i 11573 11572', 22488 'STATE 5 n 11575 11574', 22489 'STATE 3 d 11061 11576', 22490 'STATE 1 r 11024 11577', 22491 'STATE 2 u 11061 11578', 22492 'STATE 3 l 11024 11061', 22493 'STATE 2 h 11024 11579', 22494 'STATE 1 w 11024 11580', 22495 'STATE 1 s 11024 11581', 22496 'STATE 1 e 11583 11582', 22497 'STATE 3 u 11061 11024', 22498 'STATE 1 l 11061 11584', 22499 'STATE 1 w 11024 11585', 22500 'STATE 5 n 11024 11586', 22501 'STATE 5 r 11024 11587', 22502 'STATE 6 m 11028 11588', 22503 'STATE 1 g 11024 11028', 22504 'STATE 2 d 11061 11589', 22505 'STATE 3 w 11061 11590', 22506 'STATE 4 r 11061 11024', 22507 'STATE 2 v 11061 11591', 22508 'STATE 2 e 11061 11592', 22509 'STATE 3 a 11024 11593', 22510 'STATE 4 b 11061 11594', 22511 'STATE 6 e 11024 11595', 22512 'STATE 6 s 11061 11596', 22513 'STATE 2 e 11597 11024', 22514 'STATE 3 u 11024 11474', 22515 'STATE 1 a 11154 11598', 22516 'STATE 2 r 11061 11453', 22517 'STATE 1 i 11061 11599', 22518 'STATE 6 l 11600 11024', 22519 'STATE 5 s 11024 11601', 22520 'STATE 6 t 11024 11602', 22521 'STATE 1 r 11604 11603', 22522 'STATE 2 s 11024 11061', 22523 'STATE 5 s 11024 11605', 22524 'STATE 5 l 11607 11606', 22525 'STATE 6 # 11061 11541', 22526 'STATE 1 c 11024 11608', 22527 'STATE 1 n 11061 11609', 22528 'STATE 2 r 11061 11610', 22529 'STATE 5 n 11611 11024', 22530 'STATE 5 n 11061 11024', 22531 'STATE 3 i 11061 11612', 22532 'STATE 2 l 11061 11613', 22533 'STATE 4 a 11028 11024', 22534 'STATE 1 n 11615 11614', 22535 'STATE 5 v 11024 11616', 22536 'STATE 6 e 11028 11617', 22537 'STATE 2 e 11028 11182', 22538 'STATE 3 k 11024 11618', 22539 'STATE 3 a 11024 11619', 22540 'STATE 6 e 11024 11620', 22541 'STATE 6 l 11622 11621', 22542 'STATE 3 n 11024 11061', 22543 'STATE 1 # 11024 11623', 22544 'STATE 6 # 11061 11024', 22545 'STATE 1 r 11625 11624', 22546 'STATE 3 a 11312 11626', 22547 'STATE 6 # 11628 11627', 22548 'STATE 5 e 11024 11028', 22549 'STATE 5 # 11024 11629', 22550 'STATE 6 s 11028 11630', 22551 'STATE 3 a 11507 11631', 22552 'STATE 2 e 11024 11632', 22553 'STATE 3 o 11061 11633', 22554 'STATE 4 f 11024 11634', 22555 'STATE 4 n 11024 11061', 22556 'STATE 2 e 11024 11339', 22557 'STATE 2 p 11061 11635', 22558 'STATE 2 i 11061 11024', 22559 'STATE 2 t 11024 11636', 22560 'STATE 6 r 11024 11637', 22561 'STATE 5 d 11024 11028', 22562 'STATE 4 e 11638 11028', 22563 'STATE 2 m 11028 11639', 22564 'STATE 4 f 11024 11640', 22565 'STATE 6 l 11061 11641', 22566 'STATE 1 # 11024 11609', 22567 'STATE 2 o 11024 11642', 22568 'STATE 1 # 11061 11643', 22569 'STATE 4 b 11061 11644', 22570 'STATE 4 e 11024 11645', 22571 'STATE 5 s 11028 11646', 22572 'STATE 6 d 11028 11647', 22573 'STATE 4 n 11024 11648', 22574 'STATE 6 c 11190 11649', 22575 'STATE 2 c 11024 11650', 22576 'STATE 1 l 11061 11651', 22577 'STATE 2 i 11061 11652', 22578 'STATE 1 s 11024 11653', 22579 'STATE 5 d 11028 11024', 22580 'STATE 6 # 11028 11654', 22581 'STATE 2 l 11061 11655', 22582 'STATE 6 i 11564 11656', 22583 'STATE 4 w 11024 11657', 22584 'STATE 2 i 11024 11061', 22585 'STATE 1 h 11024 11658', 22586 'STATE 1 l 11024 11028', 22587 'STATE 1 a 11028 11659', 22588 'STATE 1 f 11024 11660', 22589 'STATE 5 b 11448 11661', 22590 'STATE 1 g 11024 11662', 22591 'STATE 2 e 11024 11663', 22592 'STATE 1 b 11028 11664', 22593 'STATE 1 c 11061 11665', 22594 'STATE 6 e 11024 11666', 22595 'STATE 4 l 11024 11667', 22596 'STATE 4 m 11024 11564', 22597 'STATE 1 m 11028 11668', 22598 'STATE 3 u 11024 11669', 22599 'STATE 2 a 11671 11670', 22600 'STATE 6 r 11672 11061', 22601 'STATE 1 s 11028 11673', 22602 'STATE 3 o 11675 11674', 22603 'STATE 6 s 11024 11676', 22604 'STATE 5 # 11024 11472', 22605 'STATE 2 a 11024 11677', 22606 'STATE 3 a 11140 11028', 22607 'STATE 4 d 11679 11678', 22608 'STATE 5 # 11061 11024', 22609 'STATE 3 u 11680 11534', 22610 'STATE 1 # 11024 11681', 22611 'STATE 3 e 11395 11682', 22612 'STATE 1 d 11061 11683', 22613 'STATE 6 # 11024 11684', 22614 'STATE 3 n 11061 11024', 22615 'STATE 1 h 11024 11685', 22616 'STATE 2 u 11061 11686', 22617 'STATE 5 # 11024 11061', 22618 'STATE 5 r 11061 11687', 22619 'STATE 2 a 11024 11061', 22620 'STATE 3 m 11061 11688', 22621 'STATE 3 r 11024 11689', 22622 'STATE 6 c 11061 11690', 22623 'STATE 2 u 11024 11691', 22624 'STATE 4 v 11061 11692', 22625 'STATE 6 r 11693 11474', 22626 'STATE 2 e 11061 11694', 22627 'STATE 4 b 11061 11686', 22628 'INDEX 11695 t', 22629 'STATE 4 h 11697 11696', 22630 'STATE 5 o 11699 11698', 22631 'STATE 5 e 11701 11700', 22632 'STATE 4 t 11703 11702', 22633 'STATE 4 i 11705 11704', 22634 'STATE 5 # 11707 11706', 22635 'STATE 6 r 11709 11708', 22636 'STATE 4 c 11711 11710', 22637 'STATE 3 e 11713 11712', 22638 'STATE 4 t 11715 11714', 22639 'STATE 3 s 11717 11716', 22640 'STATE 3 s 11719 11718', 22641 'PHONE th', 22642 'STATE 6 # 11721 11720', 22643 'STATE 3 # 11707 11722', 22644 'STATE 4 u 11724 11723', 22645 'STATE 5 h 11726 11725', 22646 'STATE 5 s 11728 11727', 22647 'STATE 5 s 11726 11729', 22648 'STATE 4 u 11731 11730', 22649 'STATE 3 e 11726 11732', 22650 'STATE 3 n 11734 11733', 22651 'PHONE ch', 22652 'STATE 5 o 11736 11735', 22653 'STATE 6 a 11707 11725', 22654 'STATE 6 a 11738 11737', 22655 'STATE 3 n 11707 11739', 22656 'STATE 3 a 11739 11721', 22657 'STATE 3 t 11741 11740', 22658 'STATE 3 # 11725 11742', 22659 'PHONE t', 22660 'PHONE epsilon', 22661 'STATE 6 d 11726 11743', 22662 'STATE 6 # 11745 11744', 22663 'STATE 5 l 11746 11726', 22664 'STATE 3 t 11748 11747', 22665 'STATE 6 u 11717 11725', 22666 'STATE 6 m 11726 11749', 22667 'STATE 6 n 11734 11750', 22668 'PHONE sh', 22669 'STATE 6 # 11752 11751', 22670 'STATE 6 r 11707 11753', 22671 'STATE 6 d 11755 11754', 22672 'STATE 3 # 11707 11756', 22673 'PHONE dh', 22674 'STATE 5 a 11758 11757', 22675 'STATE 4 s 11726 11759', 22676 'STATE 5 r 11761 11760', 22677 'STATE 5 r 11726 11762', 22678 'STATE 3 i 11725 11726', 22679 'STATE 3 o 11725 11763', 22680 'STATE 6 e 11726 11725', 22681 'STATE 4 a 11764 11725', 22682 'STATE 4 r 11725 11765', 22683 'STATE 6 # 11767 11766', 22684 'STATE 6 u 11734 11768', 22685 'STATE 5 a 11770 11769', 22686 'STATE 3 r 11772 11771', 22687 'STATE 3 l 11725 11773', 22688 'STATE 6 i 11707 11774', 22689 'STATE 3 a 11739 11707', 22690 'STATE 3 r 11707 11725', 22691 'STATE 6 h 11776 11775', 22692 'STATE 4 i 11778 11777', 22693 'STATE 6 0 11725 11779', 22694 'STATE 5 a 11717 11780', 22695 'STATE 6 e 11717 11781', 22696 'STATE 6 s 11726 11782', 22697 'STATE 3 a 11726 11725', 22698 'PHONE d', 22699 'STATE 4 o 11725 11726', 22700 'STATE 3 o 11784 11783', 22701 'STATE 3 o 11725 11726', 22702 'STATE 3 a 11734 11725', 22703 'STATE 6 n 11786 11785', 22704 'STATE 6 i 11725 11707', 22705 'STATE 5 y 11707 11787', 22706 'STATE 5 y 11739 11707', 22707 'STATE 3 o 11725 11788', 22708 'STATE 6 y 11739 11789', 22709 'STATE 4 l 11791 11790', 22710 'STATE 4 s 11726 11725', 22711 'STATE 4 g 11793 11792', 22712 'STATE 3 s 11795 11794', 22713 'STATE 5 d 11725 11796', 22714 'STATE 6 a 11798 11797', 22715 'STATE 6 a 11717 11799', 22716 'STATE 6 n 11726 11800', 22717 'STATE 3 u 11725 11801', 22718 'STATE 6 n 11726 11725', 22719 'STATE 6 l 11803 11802', 22720 'STATE 3 r 11739 11755', 22721 'STATE 5 s 11707 11804', 22722 'STATE 6 d 11707 11805', 22723 'STATE 6 s 11807 11806', 22724 'STATE 5 h 11809 11808', 22725 'STATE 3 s 11810 11725', 22726 'STATE 4 r 11725 11811', 22727 'STATE 3 r 11726 11725', 22728 'STATE 3 n 11813 11812', 22729 'STATE 6 # 11725 11717', 22730 'STATE 4 r 11725 11814', 22731 'STATE 5 e 11717 11815', 22732 'STATE 5 l 11717 11816', 22733 'STATE 6 i 11817 11725', 22734 'STATE 5 # 11726 11818', 22735 'STATE 6 n 11725 11819', 22736 'STATE 3 y 11821 11820', 22737 'STATE 5 i 11725 11707', 22738 'STATE 3 n 11707 11822', 22739 'STATE 6 l 11707 11823', 22740 'STATE 3 # 11707 11824', 22741 'STATE 3 o 11739 11755', 22742 'STATE 4 # 11725 11825', 22743 'STATE 4 s 11826 11725', 22744 'STATE 5 e 11726 11725', 22745 'STATE 3 # 11827 11725', 22746 'STATE 3 # 11725 11734', 22747 'STATE 6 l 11717 11828', 22748 'STATE 5 a 11725 11829', 22749 'STATE 3 s 11725 11830', 22750 'STATE 3 r 11717 11725', 22751 'STATE 3 n 11725 11717', 22752 'STATE 6 a 11726 11831', 22753 'STATE 3 a 11832 11726', 22754 'STATE 6 s 11833 11707', 22755 'STATE 5 m 11739 11707', 22756 'STATE 5 a 11707 11739', 22757 'STATE 6 n 11707 11834', 22758 'STATE 3 o 11835 11707', 22759 'STATE 5 n 11837 11836', 22760 'STATE 6 a 11717 11838', 22761 'STATE 4 e 11725 11839', 22762 'STATE 6 t 11734 11840', 22763 'STATE 6 t 11725 11841', 22764 'STATE 6 # 11725 11842', 22765 'STATE 3 a 11844 11843', 22766 'STATE 6 o 11726 11725', 22767 'STATE 3 # 11739 11707', 22768 'STATE 6 g 11707 11845', 22769 'STATE 6 n 11739 11707', 22770 'STATE 6 n 11847 11846', 22771 'STATE 4 e 11848 11725', 22772 'STATE 6 o 11725 11717', 22773 'STATE 4 o 11725 11849', 22774 'STATE 6 # 11734 11725', 22775 'STATE 4 o 11851 11850', 22776 'STATE 3 i 11725 11852', 22777 'STATE 6 # 11726 11853', 22778 'STATE 5 n 11725 11854', 22779 'STATE 3 # 11707 11855', 22780 'STATE 3 d 11857 11856', 22781 'STATE 4 i 11858 11725', 22782 'STATE 3 s 11860 11859', 22783 'STATE 4 w 11725 11861', 22784 'STATE 5 s 11725 11862', 22785 'STATE 5 m 11725 11863', 22786 'STATE 6 e 11864 11725', 22787 'STATE 5 k 11726 11865', 22788 'STATE 5 y 11726 11866', 22789 'STATE 6 u 11725 11867', 22790 'STATE 5 u 11868 11725', 22791 'STATE 4 k 11726 11725', 22792 'STATE 5 e 11768 11725', 22793 'STATE 3 f 11726 11725', 22794 'STATE 6 i 11726 11746', 22795 'STATE 4 s 11725 11726', 22796 'STATE 5 n 11725 11869', 22797 'STATE 5 n 11870 11726', 22798 'STATE 3 r 11717 11871', 22799 'STATE 6 i 11726 11872', 22800 'STATE 6 t 11725 11726', 22801 'STATE 3 a 11707 11873', 22802 'STATE 4 e 11874 11725', 22803 'STATE 5 w 11726 11875', 22804 'STATE 6 # 11726 11725', 22805 'STATE 3 a 11717 11725', 22806 'STATE 3 r 11725 11876', 22807 'STATE 3 r 11707 11877', 22808 'STATE 6 r 11878 11725', 22809 'STATE 5 g 11725 11879', 22810 'STATE 6 k 11725 11880', 22811 'STATE 3 e 11707 11725', 22812 'STATE 3 s 11717 11725', 22813 'STATE 6 k 11725 11881', 22814 'STATE 3 u 11883 11882', 22815 'STATE 5 m 11725 11884', 22816 'STATE 6 g 11726 11885', 22817 'STATE 6 e 11726 11810', 22818 'STATE 6 f 11725 11886', 22819 'STATE 5 i 11746 11887', 22820 'STATE 6 n 11725 11888', 22821 'STATE 6 m 11726 11889', 22822 'STATE 6 d 11726 11890', 22823 'STATE 5 a 11744 11891', 22824 'STATE 6 o 11726 11892', 22825 'STATE 5 l 11767 11893', 22826 'STATE 6 e 11895 11894', 22827 'STATE 5 e 11896 11726', 22828 'STATE 6 l 11898 11897', 22829 'STATE 5 r 11726 11725', 22830 'STATE 6 r 11726 11899', 22831 'STATE 6 y 11726 11900', 22832 'STATE 4 e 11726 11725', 22833 'STATE 6 l 11726 11725', 22834 'STATE 4 n 11725 11901', 22835 'STATE 6 a 11898 11902', 22836 'STATE 4 l 11904 11903', 22837 'STATE 6 b 11726 11905', 22838 'STATE 6 s 11726 11725', 22839 'STATE 5 l 11907 11906', 22840 'STATE 6 s 11909 11908', 22841 'STATE 6 # 11910 11904', 22842 'STATE 4 k 11725 11911', 22843 'STATE 4 e 11725 11726', 22844 'STATE 4 a 11725 11726', 22845 'STATE 6 i 11725 11912', 22846 'STATE 6 m 11725 11913', 22847 'STATE 6 # 11725 11914', 22848 'STATE 4 i 11725 11915', 22849 'STATE 6 r 11726 11725', 22850 'INDEX 11916 u', 22851 'STATE 4 r 11918 11917', 22852 'STATE 3 a 11920 11919', 22853 'STATE 5 y 11922 11921', 22854 'STATE 3 o 11924 11923', 22855 'PHONE epsilon', 22856 'STATE 5 i 11926 11925', 22857 'STATE 3 b 11927 11920', 22858 'STATE 3 q 11929 11928', 22859 'STATE 4 p 11931 11930', 22860 'STATE 5 o 11933 11932', 22861 'STATE 3 # 11935 11934', 22862 'PHONE eh1', 22863 'STATE 5 # 11937 11936', 22864 'STATE 4 e 11939 11938', 22865 'STATE 4 i 11941 11940', 22866 'STATE 5 l 11943 11942', 22867 'STATE 5 a 11945 11944', 22868 'STATE 3 e 11947 11946', 22869 'STATE 3 p 11949 11948', 22870 'STATE 6 n 11951 11950', 22871 'STATE 5 e 11953 11952', 22872 'STATE 4 e 11955 11954', 22873 'STATE 5 a 11957 11956', 22874 'STATE 5 # 11920 11958', 22875 'STATE 4 s 11960 11959', 22876 'STATE 5 s 11961 11957', 22877 'PHONE uw1', 22878 'PHONE ah1', 22879 'STATE 5 e 11963 11962', 22880 'STATE 6 # 11965 11964', 22881 'STATE 3 a 11920 11966', 22882 'STATE 6 p 11949 11967', 22883 'STATE 3 c 11949 11968', 22884 'PHONE y-uh1', 22885 'PHONE y-er', 22886 'PHONE y-er1', 22887 'STATE 5 i 11970 11969', 22888 'STATE 4 s 11972 11971', 22889 'STATE 4 a 11974 11973', 22890 'STATE 3 g 11920 11975', 22891 'STATE 6 # 11977 11976', 22892 'PHONE w', 22893 'STATE 6 # 11979 11978', 22894 'STATE 4 n 11981 11980', 22895 'STATE 5 s 11942 11982', 22896 'PHONE uw', 22897 'STATE 5 r 11984 11983', 22898 'STATE 3 t 11920 11985', 22899 'STATE 3 t 11920 11986', 22900 'PHONE uh1', 22901 'STATE 6 # 11965 11987', 22902 'STATE 6 l 11989 11988', 22903 'STATE 3 f 11949 11990', 22904 'STATE 5 a 11992 11991', 22905 'STATE 3 # 11994 11993', 22906 'STATE 3 # 11996 11995', 22907 'STATE 6 s 11998 11997', 22908 'STATE 4 s 12000 11999', 22909 'STATE 3 g 11957 12001', 22910 'STATE 3 r 11942 12002', 22911 'STATE 4 a 11957 12003', 22912 'STATE 5 l 11957 12004', 22913 'STATE 5 t 11920 12005', 22914 'STATE 5 z 11957 11920', 22915 'STATE 4 t 12007 12006', 22916 'STATE 5 g 12009 12008', 22917 'STATE 5 # 11920 12010', 22918 'STATE 5 u 12011 11920', 22919 'STATE 3 d 12012 11920', 22920 'STATE 3 s 12014 12013', 22921 'STATE 3 c 12016 12015', 22922 'STATE 6 n 11942 11920', 22923 'STATE 6 s 11965 12017', 22924 'PHONE uh', 22925 'STATE 3 b 11927 12018', 22926 'STATE 4 e 12020 12019', 22927 'STATE 4 l 12022 12021', 22928 'STATE 3 m 12024 12023', 22929 'STATE 6 n 11943 12025', 22930 'STATE 3 r 12027 12026', 22931 'STATE 4 n 12029 12028', 22932 'STATE 3 e 12031 12030', 22933 'STATE 3 r 12000 12032', 22934 'STATE 4 m 12000 12033', 22935 'PHONE ax', 22936 'STATE 3 h 11961 11942', 22937 'STATE 3 s 11961 12034', 22938 'STATE 4 i 11957 12035', 22939 'STATE 5 d 11957 12036', 22940 'STATE 5 u 11920 12037', 22941 'STATE 5 h 12039 12038', 22942 'STATE 6 e 12041 12040', 22943 'STATE 6 r 11943 11920', 22944 'STATE 6 e 11920 11943', 22945 'STATE 5 t 12042 11920', 22946 'STATE 3 a 11920 11965', 22947 'PHONE ao1', 22948 'STATE 3 a 11920 12043', 22949 'STATE 6 # 11920 12044', 22950 'STATE 3 g 11950 12045', 22951 'STATE 6 t 11949 11950', 22952 'PHONE y-uw1', 22953 'STATE 3 g 11949 12046', 22954 'STATE 4 a 12048 12047', 22955 'STATE 3 g 11920 12049', 22956 'STATE 3 # 12051 12050', 22957 'STATE 6 t 12053 12052', 22958 'STATE 3 c 12055 12054', 22959 'STATE 4 n 12057 12056', 22960 'STATE 6 m 11943 12058', 22961 'STATE 3 s 12060 12059', 22962 'STATE 4 m 12062 12061', 22963 'STATE 4 t 12017 12000', 22964 'STATE 6 a 12000 12063', 22965 'STATE 3 m 12017 12064', 22966 'STATE 6 r 11920 12017', 22967 'STATE 3 b 11943 12000', 22968 'STATE 3 f 12000 12065', 22969 'STATE 3 d 11942 12066', 22970 'STATE 4 o 11957 11942', 22971 'STATE 5 t 11957 12067', 22972 'STATE 5 r 11920 12068', 22973 'STATE 5 l 12070 12069', 22974 'STATE 4 g 11920 12071', 22975 'STATE 5 e 12073 12072', 22976 'STATE 5 h 11943 11920', 22977 'STATE 6 # 11920 12074', 22978 'STATE 3 g 11950 12075', 22979 'STATE 6 r 11965 12076', 22980 'STATE 3 o 11920 12077', 22981 'STATE 3 m 11949 12078', 22982 'STATE 4 i 12080 12079', 22983 'STATE 3 g 12082 12081', 22984 'STATE 3 r 12084 12083', 22985 'STATE 6 # 11942 12085', 22986 'STATE 4 n 12086 12017', 22987 'STATE 6 r 12088 12087', 22988 'STATE 3 t 12000 12089', 22989 'STATE 3 b 12091 12090', 22990 'STATE 4 s 12093 12092', 22991 'STATE 6 o 11942 12017', 22992 'STATE 6 c 12017 12094', 22993 'STATE 4 n 12017 12095', 22994 'STATE 3 l 12097 12096', 22995 'STATE 4 l 12000 11942', 22996 'STATE 6 t 11961 12098', 22997 'STATE 6 n 12000 11942', 22998 'STATE 6 x 11943 12099', 22999 'STATE 3 f 12017 12100', 23000 'STATE 3 e 12102 12101', 23001 'STATE 3 n 12104 12103', 23002 'STATE 5 n 11957 12105', 23003 'STATE 6 y 11920 11957', 23004 'STATE 4 x 11942 12106', 23005 'STATE 4 b 11943 12107', 23006 'STATE 6 a 11943 12108', 23007 'STATE 5 a 11961 11920', 23008 'STATE 6 d 11920 12109', 23009 'STATE 6 i 11942 11920', 23010 'STATE 3 o 11920 12110', 23011 'STATE 6 s 11920 12111', 23012 'STATE 3 m 11920 12112', 23013 'STATE 3 d 11965 12113', 23014 'STATE 3 # 12115 12114', 23015 'STATE 3 g 12117 12116', 23016 'STATE 5 t 12119 12118', 23017 'STATE 5 r 11920 12120', 23018 'STATE 6 # 12122 12121', 23019 'STATE 5 n 11965 11942', 23020 'STATE 6 t 12124 12123', 23021 'STATE 6 b 12017 12125', 23022 'STATE 3 t 11942 12126', 23023 'STATE 3 c 12128 12127', 23024 'STATE 3 s 12000 12129', 23025 'STATE 3 l 11942 12130', 23026 'STATE 4 s 12132 12131', 23027 'STATE 6 e 12128 12133', 23028 'STATE 6 n 12017 11942', 23029 'STATE 6 z 12128 12134', 23030 'STATE 4 t 12017 11961', 23031 'STATE 3 t 12136 12135', 23032 'STATE 6 n 12137 11942', 23033 'STATE 6 l 11942 12138', 23034 'STATE 6 m 11943 12000', 23035 'STATE 3 b 12017 12139', 23036 'STATE 4 i 11942 12140', 23037 'STATE 4 x 11920 12141', 23038 'STATE 3 l 11942 12142', 23039 'PHONE y-uw', 23040 'STATE 4 i 11957 11920', 23041 'STATE 4 e 12144 12143', 23042 'STATE 4 e 11961 11920', 23043 'STATE 6 e 11920 12145', 23044 'STATE 6 r 11920 11942', 23045 'STATE 3 b 12147 12146', 23046 'STATE 6 d 11965 11920', 23047 'STATE 3 # 11949 12148', 23048 'STATE 3 k 11920 12149', 23049 'STATE 5 o 12151 12150', 23050 'STATE 4 n 12153 12152', 23051 'STATE 3 b 11920 12154', 23052 'STATE 6 h 11957 12155', 23053 'STATE 5 l 12157 12156', 23054 'STATE 3 t 11961 12158', 23055 'STATE 6 a 11957 12159', 23056 'STATE 3 l 12161 12160', 23057 'STATE 3 s 11942 12162', 23058 'STATE 3 h 12164 12163', 23059 'STATE 4 t 12166 12165', 23060 'STATE 6 n 11943 12167', 23061 'STATE 3 c 12128 12168', 23062 'STATE 3 g 12128 12169', 23063 'PHONE y-ax', 23064 'STATE 3 d 12000 12128', 23065 'STATE 3 p 12171 12170', 23066 'STATE 6 o 12017 12172', 23067 'PHONE ih1', 23068 'STATE 6 v 12128 12173', 23069 'STATE 6 s 12128 12017', 23070 'STATE 3 d 12175 12174', 23071 'STATE 4 d 11942 12176', 23072 'STATE 4 m 11943 11942', 23073 'STATE 6 n 12177 11942', 23074 'STATE 3 # 12017 12178', 23075 'STATE 4 y 11920 12179', 23076 'STATE 4 p 11943 11961', 23077 'STATE 3 c 12104 12017', 23078 'STATE 5 t 11920 12180', 23079 'STATE 6 t 11961 11942', 23080 'STATE 6 i 11920 12181', 23081 'STATE 3 c 12183 12182', 23082 'STATE 6 a 11949 11927', 23083 'STATE 6 s 11965 12184', 23084 'STATE 3 a 11920 12185', 23085 'STATE 4 # 12187 12186', 23086 'STATE 6 # 12189 12188', 23087 'STATE 4 p 12191 12190', 23088 'STATE 5 d 12193 12192', 23089 'STATE 3 c 12195 12194', 23090 'STATE 5 t 11920 12196', 23091 'STATE 3 t 12198 12197', 23092 'STATE 3 n 12104 12199', 23093 'STATE 3 d 12201 12200', 23094 'STATE 5 n 11957 12202', 23095 'STATE 3 b 12204 12203', 23096 'STATE 5 n 11961 12205', 23097 'STATE 3 n 12207 12206', 23098 'STATE 3 s 12209 12208', 23099 'STATE 4 m 12017 11942', 23100 'STATE 3 c 12128 12210', 23101 'STATE 3 p 12128 12104', 23102 'STATE 6 l 12000 11943', 23103 'STATE 3 m 12128 12211', 23104 'STATE 3 p 12128 12000', 23105 'STATE 3 f 12213 12212', 23106 'STATE 6 s 11943 12017', 23107 'STATE 4 t 12104 12093', 23108 'STATE 6 n 12128 12017', 23109 'STATE 3 e 12215 12214', 23110 'STATE 4 l 11961 11942', 23111 'STATE 4 t 11942 12216', 23112 'STATE 4 d 11942 12217', 23113 'STATE 3 c 12017 12218', 23114 'STATE 4 z 11961 12219', 23115 'STATE 4 # 11942 12220', 23116 'STATE 6 # 11920 11943', 23117 'STATE 3 p 11949 12221', 23118 'STATE 6 # 11950 11949', 23119 'STATE 3 a 11920 12222', 23120 'STATE 3 o 11920 12223', 23121 'STATE 4 o 12225 12224', 23122 'STATE 3 c 12104 12226', 23123 'STATE 6 u 12228 12227', 23124 'STATE 3 c 12017 11942', 23125 'STATE 5 u 12017 12229', 23126 'STATE 5 h 12000 12230', 23127 'STATE 5 o 11943 12231', 23128 'STATE 6 o 12000 12232', 23129 'STATE 5 n 12234 12233', 23130 'STATE 5 s 11957 11920', 23131 'STATE 6 g 11920 12235', 23132 'STATE 3 n 11942 12236', 23133 'STATE 6 y 11961 12237', 23134 'STATE 3 d 11961 12238', 23135 'STATE 3 l 12104 12239', 23136 'PHONE ax-w', 23137 'STATE 6 # 11920 11957', 23138 'STATE 3 m 12241 12240', 23139 'STATE 5 n 11957 12017', 23140 'STATE 6 e 11965 11942', 23141 'STATE 3 l 12243 12242', 23142 'STATE 5 l 11989 12104', 23143 'STATE 3 g 12245 12244', 23144 'STATE 6 r 11965 12246', 23145 'STATE 4 m 11942 12247', 23146 'STATE 6 # 11942 12248', 23147 'STATE 3 h 12250 12249', 23148 'STATE 4 j 11942 12017', 23149 'STATE 4 y 11920 12251', 23150 'STATE 4 g 12104 12252', 23151 'STATE 4 n 12253 11942', 23152 'STATE 4 b 11942 12000', 23153 'STATE 6 n 11942 12254', 23154 'STATE 4 l 12000 12255', 23155 'STATE 4 v 12257 12256', 23156 'STATE 3 # 11951 12258', 23157 'STATE 6 l 11920 12259', 23158 'STATE 3 e 11920 12260', 23159 'STATE 3 e 12262 12261', 23160 'STATE 5 u 12264 12263', 23161 'STATE 3 e 11942 12265', 23162 'STATE 3 c 12267 12266', 23163 'STATE 4 l 12128 11943', 23164 'STATE 4 h 12269 12268', 23165 'STATE 5 d 12000 12270', 23166 'STATE 6 o 12272 12271', 23167 'STATE 6 e 11943 12273', 23168 'STATE 3 m 11942 12274', 23169 'STATE 3 r 11942 12275', 23170 'STATE 6 d 11920 12276', 23171 'STATE 5 n 12278 12277', 23172 'STATE 6 i 11961 11942', 23173 'STATE 3 t 12280 12279', 23174 'STATE 3 n 12104 12128', 23175 'STATE 3 f 12282 12281', 23176 'STATE 5 l 12104 12017', 23177 'STATE 3 d 11942 12283', 23178 'STATE 5 d 12104 11942', 23179 'STATE 3 n 12285 12284', 23180 'STATE 6 n 11920 12000', 23181 'STATE 6 n 11961 11942', 23182 'STATE 3 d 12000 12286', 23183 'STATE 3 d 12000 11942', 23184 'STATE 3 k 12288 12287', 23185 'STATE 4 m 12104 12289', 23186 'STATE 6 n 12291 12290', 23187 'STATE 6 r 12293 12292', 23188 'STATE 6 # 11942 12000', 23189 'STATE 3 r 11942 12294', 23190 'STATE 4 h 11961 12295', 23191 'STATE 5 a 12297 12296', 23192 'STATE 5 i 11961 11942', 23193 'STATE 6 k 11965 12298', 23194 'STATE 6 n 12300 12299', 23195 'STATE 6 n 12302 12301', 23196 'STATE 5 u 12304 12303', 23197 'STATE 4 p 11943 12305', 23198 'STATE 5 r 11920 12306', 23199 'STATE 3 n 12104 12307', 23200 'STATE 3 g 11961 12308', 23201 'STATE 3 b 12310 12309', 23202 'STATE 4 t 12128 11942', 23203 'STATE 4 m 11943 12311', 23204 'STATE 6 i 11965 11942', 23205 'STATE 5 p 11943 12312', 23206 'STATE 5 u 12000 12313', 23207 'STATE 5 c 11943 12000', 23208 'STATE 6 i 11943 12000', 23209 'STATE 3 s 11942 12314', 23210 'STATE 6 g 11942 12128', 23211 'STATE 6 e 11920 12315', 23212 'STATE 3 s 11957 12316', 23213 'STATE 3 h 11957 12317', 23214 'STATE 3 s 12201 12318', 23215 'STATE 6 i 12201 11961', 23216 'STATE 5 r 12320 12319', 23217 'STATE 5 l 12017 11957', 23218 'STATE 5 r 11920 12321', 23219 'STATE 3 c 12173 12322', 23220 'STATE 4 f 12128 11942', 23221 'STATE 4 g 12000 12323', 23222 'STATE 3 g 11961 12324', 23223 'STATE 6 c 12017 12325', 23224 'STATE 6 a 11942 12326', 23225 'STATE 3 n 12328 12327', 23226 'STATE 4 m 12128 12329', 23227 'STATE 6 # 11943 12330', 23228 'STATE 4 v 11942 12331', 23229 'STATE 6 # 12017 11942', 23230 'STATE 4 k 12000 12332', 23231 'STATE 4 a 11961 12333', 23232 'STATE 4 g 11942 12334', 23233 'STATE 3 l 11965 12335', 23234 'STATE 3 d 11965 11920', 23235 'STATE 3 d 11920 12336', 23236 'STATE 6 z 11920 12337', 23237 'STATE 3 t 11920 12338', 23238 'STATE 3 s 12340 12339', 23239 'STATE 3 c 12342 12341', 23240 'STATE 5 r 11942 12343', 23241 'STATE 6 # 11920 12344', 23242 'STATE 3 c 12104 12345', 23243 'STATE 3 n 11961 12346', 23244 'STATE 3 m 12104 12347', 23245 'STATE 4 t 12128 12017', 23246 'STATE 5 t 11943 12348', 23247 'STATE 6 i 11943 12349', 23248 'STATE 5 w 12000 12350', 23249 'STATE 6 # 12352 12351', 23250 'STATE 5 l 11920 12353', 23251 'STATE 5 d 11957 12354', 23252 'STATE 3 j 11957 11961', 23253 'STATE 3 x 12201 11961', 23254 'STATE 6 a 11957 12355', 23255 'STATE 3 e 11920 12356', 23256 'STATE 3 c 12017 12357', 23257 'STATE 4 t 12359 12358', 23258 'STATE 3 t 12000 12360', 23259 'STATE 6 e 12362 12361', 23260 'STATE 4 l 12104 12062', 23261 'STATE 4 l 12017 11942', 23262 'STATE 3 j 11942 12363', 23263 'STATE 4 t 12000 11942', 23264 'STATE 4 l 12128 12364', 23265 'STATE 6 n 11920 11942', 23266 'STATE 4 t 11942 12365', 23267 'STATE 3 n 11943 12366', 23268 'STATE 6 u 11920 12367', 23269 'STATE 6 # 11942 12175', 23270 'STATE 6 t 11920 12368', 23271 'STATE 3 s 11965 12017', 23272 'STATE 3 j 11965 12369', 23273 'STATE 3 s 11965 11920', 23274 'STATE 4 l 12371 12370', 23275 'STATE 5 r 12373 12372', 23276 'STATE 4 t 12375 12374', 23277 'STATE 4 m 12017 12128', 23278 'STATE 6 a 12104 12376', 23279 'STATE 5 y 11920 12377', 23280 'STATE 3 t 12000 11961', 23281 'STATE 3 l 11961 12378', 23282 'STATE 4 b 12380 12379', 23283 'STATE 5 o 12104 12381', 23284 'STATE 6 a 11943 12382', 23285 'STATE 6 a 12000 12383', 23286 'STATE 5 d 11961 12384', 23287 'STATE 3 r 11942 11961', 23288 'STATE 6 t 11957 12385', 23289 'STATE 5 r 11957 11942', 23290 'STATE 3 k 11965 12386', 23291 'STATE 3 h 11920 11965', 23292 'STATE 5 l 11942 12017', 23293 'STATE 6 m 11942 12387', 23294 'STATE 3 r 11942 12388', 23295 'STATE 4 n 11961 11942', 23296 'STATE 3 e 12390 12389', 23297 'STATE 4 l 11942 12391', 23298 'STATE 3 h 12393 12392', 23299 'STATE 3 j 11942 12017', 23300 'STATE 4 b 11920 11942', 23301 'STATE 4 g 11943 12394', 23302 'STATE 6 r 11920 12395', 23303 'STATE 3 j 11920 12396', 23304 'STATE 6 s 11920 12397', 23305 'STATE 5 h 12399 12398', 23306 'STATE 3 f 12401 12400', 23307 'STATE 4 b 12403 12402', 23308 'STATE 6 e 11961 12404', 23309 'STATE 6 # 11942 12405', 23310 'STATE 3 m 12017 12406', 23311 'STATE 6 c 11920 12407', 23312 'STATE 3 b 11957 12408', 23313 'STATE 3 r 11961 12409', 23314 'STATE 4 d 11942 12410', 23315 'STATE 3 s 12000 12411', 23316 'STATE 4 z 11961 11943', 23317 'STATE 5 t 11943 12412', 23318 'STATE 5 f 12000 12413', 23319 'STATE 3 h 11920 12414', 23320 'STATE 6 i 11920 12415', 23321 'STATE 3 h 12417 12416', 23322 'STATE 3 e 12419 12418', 23323 'STATE 3 l 11961 12420', 23324 'STATE 3 n 11942 12421', 23325 'STATE 6 c 12017 11942', 23326 'STATE 3 r 11942 11943', 23327 'STATE 4 t 12423 12422', 23328 'STATE 4 l 11942 12424', 23329 'STATE 4 p 12426 12425', 23330 'STATE 6 t 11961 12427', 23331 'STATE 3 e 11920 12428', 23332 'STATE 3 t 11965 12429', 23333 'STATE 6 # 12431 12430', 23334 'STATE 4 s 12433 12432', 23335 'STATE 3 b 12435 12434', 23336 'STATE 6 y 12000 12436', 23337 'STATE 5 p 12438 12437', 23338 'STATE 6 c 12000 12439', 23339 'STATE 6 a 11942 11943', 23340 'STATE 4 k 11961 12440', 23341 'STATE 6 r 12017 11942', 23342 'STATE 6 i 11942 12441', 23343 'STATE 5 m 11957 12442', 23344 'STATE 3 k 11942 12443', 23345 'STATE 3 h 12164 12444', 23346 'STATE 3 d 12000 11943', 23347 'STATE 6 r 12000 12445', 23348 'STATE 5 l 12000 12446', 23349 'STATE 3 d 11961 11942', 23350 'STATE 6 n 11920 12447', 23351 'STATE 3 # 11965 12448', 23352 'STATE 5 t 11942 12449', 23353 'STATE 6 s 12451 12450', 23354 'STATE 6 l 12017 11942', 23355 'STATE 3 b 12128 12452', 23356 'STATE 6 o 11942 12453', 23357 'STATE 3 m 12455 12454', 23358 'STATE 3 b 12104 12017', 23359 'STATE 4 t 11942 12456', 23360 'STATE 3 m 12000 12457', 23361 'STATE 3 r 12000 12458', 23362 'STATE 5 i 12460 12459', 23363 'STATE 3 n 11950 12461', 23364 'STATE 6 a 11965 12462', 23365 'STATE 4 y 11920 12463', 23366 'STATE 5 y 12465 12464', 23367 'STATE 4 t 12467 12466', 23368 'STATE 3 b 11965 12468', 23369 'STATE 3 p 12470 12469', 23370 'STATE 5 l 11965 12471', 23371 'STATE 5 n 12000 12472', 23372 'STATE 5 c 12474 12473', 23373 'STATE 4 m 11943 12475', 23374 'STATE 6 l 11943 12476', 23375 'STATE 6 l 11942 12477', 23376 'STATE 6 # 12478 11920', 23377 'STATE 6 o 11957 12479', 23378 'STATE 3 m 11942 11961', 23379 'STATE 3 e 12481 12480', 23380 'STATE 6 e 12000 11943', 23381 'STATE 5 h 12000 12482', 23382 'STATE 6 o 11920 12483', 23383 'STATE 6 d 11942 12484', 23384 'STATE 5 l 11942 11965', 23385 'STATE 3 k 11961 12485', 23386 'STATE 3 l 11942 12486', 23387 'STATE 3 p 12128 12017', 23388 'STATE 6 # 11942 12487', 23389 'STATE 4 p 11942 12488', 23390 'STATE 4 n 12489 12017', 23391 'STATE 6 # 12017 12164', 23392 'STATE 3 b 12000 12490', 23393 'STATE 3 d 11943 12491', 23394 'STATE 5 f 11920 12492', 23395 'STATE 6 n 12494 12493', 23396 'STATE 6 # 11965 12495', 23397 'STATE 3 l 11965 11920', 23398 'STATE 5 c 12497 12496', 23399 'STATE 5 d 12499 12498', 23400 'STATE 4 d 11942 12500', 23401 'STATE 4 g 12502 12501', 23402 'STATE 6 # 12504 12503', 23403 'STATE 3 p 11965 12505', 23404 'STATE 5 l 12507 12506', 23405 'STATE 5 l 11965 12508', 23406 'STATE 6 a 12000 11943', 23407 'STATE 5 f 11989 12509', 23408 'STATE 4 g 12000 12510', 23409 'STATE 6 e 12000 12511', 23410 'STATE 6 h 11943 12512', 23411 'STATE 6 a 11943 12513', 23412 'STATE 6 s 11942 12514', 23413 'STATE 5 z 11920 11942', 23414 'STATE 5 n 11961 11942', 23415 'STATE 6 w 12000 12515', 23416 'STATE 6 g 12017 11920', 23417 'STATE 5 v 12000 12516', 23418 'STATE 5 n 11920 12517', 23419 'STATE 3 c 11957 12518', 23420 'STATE 3 f 11961 12519', 23421 'STATE 4 d 11943 11942', 23422 'STATE 4 c 11942 12520', 23423 'STATE 3 z 11942 12521', 23424 'STATE 6 # 12017 12104', 23425 'STATE 3 r 12523 12522', 23426 'STATE 3 s 12000 12524', 23427 'STATE 5 # 12526 12525', 23428 'STATE 4 l 11942 11920', 23429 'STATE 4 l 11961 11920', 23430 'STATE 3 d 11965 11949', 23431 'STATE 5 l 12528 12527', 23432 'STATE 4 c 12530 12529', 23433 'STATE 5 r 11920 12531', 23434 'STATE 4 n 12532 11943', 23435 'STATE 3 l 11942 12533', 23436 'STATE 6 i 11942 12534', 23437 'STATE 6 e 12017 11943', 23438 'STATE 3 r 12535 11943', 23439 'STATE 3 m 11961 12536', 23440 'STATE 3 c 11965 11943', 23441 'STATE 5 y 11942 12537', 23442 'STATE 6 o 11942 11943', 23443 'STATE 6 o 11965 12538', 23444 'STATE 6 i 11965 12539', 23445 'STATE 6 a 12541 12540', 23446 'STATE 4 c 12000 11943', 23447 'STATE 4 s 12000 12542', 23448 'STATE 5 m 12000 12543', 23449 'STATE 6 e 12545 12544', 23450 'STATE 3 d 11961 12546', 23451 'STATE 5 t 12000 12547', 23452 'STATE 6 a 11920 11957', 23453 'STATE 3 t 11961 12548', 23454 'STATE 3 b 11961 12549', 23455 'STATE 6 g 11943 12550', 23456 'STATE 6 l 11942 12551', 23457 'STATE 3 p 11943 12552', 23458 'STATE 4 n 11943 12553', 23459 'STATE 3 h 12000 11943', 23460 'STATE 6 a 11942 12554', 23461 'STATE 4 d 11920 11942', 23462 'STATE 5 r 12556 12555', 23463 'STATE 4 h 11942 12557', 23464 'STATE 3 b 12558 11943', 23465 'STATE 6 i 12560 12559', 23466 'STATE 3 i 12000 12561', 23467 'STATE 3 f 11943 12562', 23468 'STATE 4 b 11942 12128', 23469 'STATE 3 b 12564 12563', 23470 'STATE 6 e 11943 11942', 23471 'STATE 3 l 11942 12565', 23472 'STATE 3 h 11943 12566', 23473 'STATE 6 i 11943 12567', 23474 'STATE 6 o 11965 12568', 23475 'STATE 5 h 11943 12569', 23476 'STATE 4 s 12000 12570', 23477 'STATE 6 o 12000 12571', 23478 'STATE 6 o 12000 12572', 23479 'STATE 4 s 12017 12573', 23480 'STATE 4 g 12017 12000', 23481 'STATE 6 t 11961 12574', 23482 'STATE 5 b 12575 12000', 23483 'STATE 3 d 11942 12576', 23484 'STATE 3 m 11961 12577', 23485 'STATE 4 m 12579 12578', 23486 'STATE 6 r 12017 12580', 23487 'STATE 3 h 11943 12581', 23488 'STATE 4 t 12000 11943', 23489 'STATE 5 e 12493 12582', 23490 'STATE 4 z 12584 12583', 23491 'STATE 4 h 11965 12585', 23492 'STATE 4 c 11942 12586', 23493 'STATE 4 n 11943 12587', 23494 'STATE 6 o 11942 11961', 23495 'STATE 3 b 11961 11942', 23496 'STATE 3 p 12589 12588', 23497 'STATE 3 l 12000 12590', 23498 'STATE 3 d 11943 12591', 23499 'STATE 6 a 12104 11943', 23500 'STATE 3 r 11961 11942', 23501 'STATE 5 f 12593 12592', 23502 'STATE 5 t 12000 11943', 23503 'STATE 5 l 11965 12594', 23504 'STATE 4 f 12596 12595', 23505 'STATE 4 m 12000 11943', 23506 'STATE 6 r 12000 12167', 23507 'STATE 5 v 12000 12597', 23508 'STATE 6 a 11942 12598', 23509 'STATE 3 r 11942 12599', 23510 'STATE 6 e 11943 12000', 23511 'STATE 5 l 11961 12600', 23512 'STATE 4 k 11961 12601', 23513 'STATE 3 s 11961 12602', 23514 'STATE 6 n 11942 11961', 23515 'STATE 4 l 12604 12603', 23516 'STATE 3 c 11943 12605', 23517 'STATE 4 l 11920 12606', 23518 'STATE 4 s 12608 12607', 23519 'STATE 6 l 11943 12609', 23520 'STATE 3 n 11961 12610', 23521 'STATE 4 p 12612 12611', 23522 'STATE 4 s 11943 11965', 23523 'STATE 5 l 11943 12613', 23524 'STATE 5 s 11965 11943', 23525 'STATE 3 m 12000 11943', 23526 'STATE 3 r 11943 12614', 23527 'STATE 6 a 12567 12615', 23528 'STATE 3 g 11943 12000', 23529 'STATE 6 # 11965 11943', 23530 'STATE 5 d 11943 12616', 23531 'STATE 6 i 12000 11943', 23532 'STATE 5 l 12000 12617', 23533 'STATE 4 b 12000 12618', 23534 'STATE 4 s 12000 12619', 23535 'STATE 3 s 11957 12620', 23536 'STATE 4 n 12622 12621', 23537 'STATE 6 l 12624 12623', 23538 'STATE 6 # 12017 12625', 23539 'STATE 3 c 12017 12626', 23540 'STATE 3 l 12628 12627', 23541 'STATE 6 e 11942 11920', 23542 'STATE 4 h 12630 12629', 23543 'STATE 5 s 12632 12631', 23544 'STATE 6 e 12634 12633', 23545 'STATE 3 l 11942 12635', 23546 'STATE 4 g 12637 12636', 23547 'STATE 3 d 11942 12391', 23548 'STATE 5 z 12524 12638', 23549 'STATE 3 h 11943 12639', 23550 'STATE 6 # 11943 12640', 23551 'STATE 5 s 12642 12641', 23552 'STATE 6 r 12000 12643', 23553 'STATE 3 d 12000 12644', 23554 'STATE 6 n 12646 12645', 23555 'STATE 3 p 11957 11942', 23556 'STATE 4 s 11961 12647', 23557 'STATE 3 d 11943 11942', 23558 'STATE 4 l 12649 12648', 23559 'STATE 4 b 11942 12017', 23560 'STATE 4 g 12017 12650', 23561 'STATE 3 b 12017 12104', 23562 'STATE 3 g 12652 12651', 23563 'STATE 4 b 11943 12000', 23564 'STATE 6 o 11943 12653', 23565 'STATE 6 e 11942 11943', 23566 'STATE 5 t 12654 11943', 23567 'STATE 3 r 12507 11943', 23568 'STATE 5 z 12655 11943', 23569 'STATE 3 b 11943 11961', 23570 'STATE 6 i 11943 12656', 23571 'STATE 6 e 12658 12657', 23572 'STATE 3 g 11961 11943', 23573 'STATE 5 m 11943 12659', 23574 'STATE 6 # 12000 11943', 23575 'STATE 6 y 12000 12660', 23576 'STATE 4 l 12661 11943', 23577 'STATE 4 s 11943 12652', 23578 'STATE 5 t 11943 12662', 23579 'STATE 6 r 12000 11943', 23580 'STATE 4 l 12000 12663', 23581 'STATE 3 l 11961 11942', 23582 'STATE 4 v 11961 12664', 23583 'STATE 3 j 11942 12665', 23584 'STATE 3 j 11942 12666', 23585 'STATE 6 s 12017 12667', 23586 'STATE 3 t 11943 12000', 23587 'STATE 4 n 11943 12000', 23588 'STATE 3 c 12669 12668', 23589 'STATE 6 r 12671 12670', 23590 'STATE 6 i 11942 12507', 23591 'STATE 3 d 12628 11943', 23592 'STATE 6 a 12672 11943', 23593 'STATE 4 b 11942 11943', 23594 'STATE 4 m 12674 12673', 23595 'STATE 5 c 11943 12675', 23596 'STATE 6 o 12000 11943', 23597 'STATE 5 j 12000 12676', 23598 'STATE 6 s 11942 12677', 23599 'STATE 6 y 11961 12678', 23600 'STATE 4 s 11942 12679', 23601 'STATE 3 d 11942 12680', 23602 'STATE 4 n 12017 12681', 23603 'STATE 3 p 11943 12682', 23604 'STATE 4 m 12683 11943', 23605 'STATE 6 a 12684 11943', 23606 'STATE 3 l 12000 11943', 23607 'STATE 4 n 11943 11942', 23608 'STATE 4 t 12686 12685', 23609 'STATE 5 p 11943 12687', 23610 'STATE 5 t 11943 12688', 23611 'STATE 5 s 12596 11943', 23612 'STATE 3 l 11942 12360', 23613 'STATE 3 r 12690 12689', 23614 'STATE 3 d 11942 12691', 23615 'STATE 3 t 11961 11942', 23616 'STATE 6 d 12017 11942', 23617 'STATE 5 z 12693 12692', 23618 'STATE 5 s 12000 12694', 23619 'STATE 3 g 11943 12695', 23620 'STATE 3 j 11943 12696', 23621 'STATE 5 s 11943 12697', 23622 'STATE 5 b 11943 12000', 23623 'STATE 3 c 11943 12698', 23624 'STATE 3 t 11942 12699', 23625 'STATE 6 l 11961 11942', 23626 'STATE 4 d 11942 12700', 23627 'STATE 3 i 12000 12701', 23628 'STATE 6 i 12702 11943', 23629 'STATE 5 v 12000 11943', 23630 'STATE 3 b 11943 12703', 23631 'STATE 5 n 11943 12704', 23632 'STATE 3 c 12000 11943', 23633 'STATE 3 v 11943 12705', 23634 'STATE 6 r 12707 12706', 23635 'STATE 6 s 11942 12708', 23636 'STATE 4 k 12000 12709', 23637 'STATE 4 d 11943 12710', 23638 'STATE 3 m 11943 12000', 23639 'STATE 3 b 11943 12711', 23640 'STATE 3 g 11943 12712', 23641 'STATE 4 d 11942 12713', 23642 'STATE 3 l 11942 11961', 23643 'STATE 6 c 11942 12714', 23644 'STATE 3 l 12716 12715', 23645 'STATE 3 n 11961 11943', 23646 'STATE 3 g 11943 12717', 23647 'STATE 5 g 11943 12718', 23648 'STATE 6 l 11942 12719', 23649 'STATE 3 t 11942 12720', 23650 'STATE 4 m 11943 12721', 23651 'STATE 5 n 12000 12722', 23652 'STATE 4 g 11943 12723', 23653 'STATE 5 s 11943 12724', 23654 'STATE 4 b 11942 12725', 23655 'STATE 4 b 11942 12726', 23656 'STATE 3 r 11943 12727', 23657 'STATE 6 a 12729 12728', 23658 'STATE 3 d 11943 12730', 23659 'STATE 5 k 11943 12731', 23660 'STATE 3 d 12000 12246', 23661 'STATE 6 n 11942 12732', 23662 'STATE 6 a 12734 12733', 23663 'STATE 5 w 11943 12735', 23664 'STATE 4 n 12000 11943', 23665 'STATE 5 g 12737 12736', 23666 'STATE 6 o 11943 12703', 23667 'STATE 6 a 11942 11961', 23668 'STATE 6 s 12590 11943', 23669 'STATE 5 t 11943 12738', 23670 'STATE 5 t 12739 11943', 23671 'STATE 3 f 11943 12740', 23672 'STATE 3 t 12000 11943', 23673 'STATE 3 n 12000 11943', 23674 'STATE 4 t 11943 12445', 23675 'STATE 4 p 12741 11943', 23676 'STATE 5 p 11943 12742', 23677 'STATE 3 r 12000 11943', 23678 'INDEX 12743 v', 23679 'STATE 4 v 12745 12744', 23680 'PHONE v', 23681 'PHONE epsilon', 23682 'INDEX 12746 w', 23683 'STATE 3 o 12748 12747', 23684 'STATE 3 e 12750 12749', 23685 'STATE 5 k 12752 12751', 23686 'STATE 3 a 12754 12753', 23687 'STATE 5 k 12756 12755', 23688 'STATE 6 z 12758 12757', 23689 'STATE 6 i 12756 12759', 23690 'STATE 4 r 12759 12760', 23691 'STATE 4 a 12762 12761', 23692 'STATE 6 z 12764 12763', 23693 'PHONE f', 23694 'STATE 4 a 12766 12765', 23695 'STATE 5 c 12764 12767', 23696 'PHONE epsilon', 23697 'STATE 5 o 12769 12768', 23698 'STATE 5 k 12756 12770', 23699 'STATE 5 l 12759 12767', 23700 'STATE 4 o 12762 12771', 23701 'PHONE v', 23702 'STATE 6 l 12773 12772', 23703 'STATE 5 y 12767 12774', 23704 'PHONE w', 23705 'STATE 3 u 12776 12775', 23706 'STATE 4 h 12777 12767', 23707 'STATE 4 o 12767 12778', 23708 'STATE 4 a 12780 12779', 23709 'STATE 4 o 12767 12759', 23710 'STATE 5 l 12767 12759', 23711 'STATE 1 c 12767 12759', 23712 'STATE 5 r 12782 12781', 23713 'STATE 1 # 12767 12783', 23714 'STATE 6 l 12759 12784', 23715 'STATE 4 h 12767 12785', 23716 'STATE 4 i 12787 12786', 23717 'STATE 5 y 12767 12788', 23718 'STATE 4 e 12767 12789', 23719 'STATE 3 s 12790 12767', 23720 'STATE 4 e 12767 12759', 23721 'STATE 6 o 12767 12759', 23722 'STATE 4 i 12792 12791', 23723 'STATE 4 e 12794 12793', 23724 'STATE 6 d 12767 12795', 23725 'STATE 1 # 12759 12796', 23726 'STATE 5 s 12798 12797', 23727 'STATE 6 t 12767 12799', 23728 'STATE 4 e 12801 12800', 23729 'STATE 6 g 12759 12802', 23730 'STATE 4 h 12802 12759', 23731 'STATE 6 l 12802 12803', 23732 'STATE 6 e 12767 12804', 23733 'STATE 6 e 12767 12805', 23734 'STATE 3 i 12806 12767', 23735 'STATE 6 i 12764 12767', 23736 'STATE 1 a 12759 12807', 23737 'STATE 5 o 12808 12759', 23738 'STATE 1 # 12809 12759', 23739 'STATE 1 # 12759 12767', 23740 'STATE 5 d 12759 12810', 23741 'STATE 1 e 12767 12811', 23742 'STATE 6 k 12767 12812', 23743 'STATE 1 s 12764 12767', 23744 'STATE 6 d 12759 12767', 23745 'STATE 1 # 12813 12759', 23746 'STATE 6 # 12759 12764', 23747 'STATE 5 l 12759 12814', 23748 'STATE 5 s 12759 12815', 23749 'STATE 6 # 12759 12816', 23750 'STATE 6 n 12759 12764', 23751 'STATE 5 r 12759 12817', 23752 'STATE 5 n 12759 12818', 23753 'STATE 1 s 12759 12819', 23754 'STATE 5 s 12759 12820', 23755 'STATE 6 t 12759 12821', 23756 'STATE 5 r 12767 12773', 23757 'STATE 5 y 12759 12822', 23758 'STATE 6 # 12759 12767', 23759 'STATE 6 t 12759 12823', 23760 'STATE 5 n 12759 12824', 23761 'STATE 5 # 12759 12767', 23762 'INDEX 12825 x', 23763 'STATE 3 u 12827 12826', 23764 'STATE 2 0 12829 12828', 23765 'STATE 4 # 12831 12830', 23766 'STATE 3 e 12832 12830', 23767 'PHONE z', 23768 'PHONE k-s', 23769 'STATE 2 l 12830 12833', 23770 'STATE 4 a 12835 12834', 23771 'PHONE epsilon', 23772 'STATE 4 u 12837 12836', 23773 'STATE 2 # 12839 12838', 23774 'STATE 4 h 12839 12840', 23775 'STATE 2 s 12841 12839', 23776 'STATE 2 l 12839 12830', 23777 'PHONE g-z', 23778 'STATE 4 e 12843 12842', 23779 'PHONE k-sh', 23780 'STATE 4 i 12845 12844', 23781 'STATE 2 # 12839 12830', 23782 'STATE 4 o 12839 12830', 23783 'STATE 2 l 12830 12846', 23784 'STATE 2 m 12830 12843', 23785 'INDEX 12847 y', 23786 'STATE 4 # 12849 12848', 23787 'STATE 2 0 12851 12850', 23788 'STATE 3 a 12853 12852', 23789 'STATE 3 a 12855 12854', 23790 'STATE 5 a 12857 12856', 23791 'STATE 3 o 12853 12858', 23792 'PHONE epsilon', 23793 'STATE 3 o 12860 12859', 23794 'STATE 4 a 12862 12861', 23795 'PHONE y', 23796 'STATE 4 e 12856 12863', 23797 'STATE 3 f 12865 12864', 23798 'STATE 3 e 12867 12866', 23799 'STATE 4 o 12869 12868', 23800 'STATE 4 u 12853 12870', 23801 'STATE 5 m 12856 12871', 23802 'PHONE iy', 23803 'STATE 3 e 12873 12872', 23804 'STATE 2 i 12875 12874', 23805 'STATE 1 0 12877 12876', 23806 'STATE 4 e 12879 12878', 23807 'STATE 5 m 12856 12853', 23808 'STATE 2 t 12856 12853', 23809 'STATE 4 o 12853 12880', 23810 'STATE 2 b 12853 12881', 23811 'STATE 3 u 12875 12882', 23812 'STATE 2 l 12863 12883', 23813 'STATE 2 f 12863 12875', 23814 'PHONE ay1', 23815 'STATE 4 a 12885 12884', 23816 'STATE 3 s 12887 12886', 23817 'STATE 1 # 12853 12888', 23818 'STATE 2 m 12890 12889', 23819 'STATE 5 v 12875 12853', 23820 'STATE 2 r 12853 12891', 23821 'STATE 2 f 12892 12863', 23822 'STATE 2 n 12863 12893', 23823 'STATE 1 # 12895 12894', 23824 'STATE 1 # 12897 12896', 23825 'STATE 5 e 12875 12898', 23826 'STATE 5 o 12900 12899', 23827 'STATE 2 n 12863 12901', 23828 'STATE 5 r 12903 12902', 23829 'STATE 1 # 12875 12904', 23830 'STATE 2 k 12875 12905', 23831 'STATE 3 l 12875 12863', 23832 'STATE 2 s 12863 12906', 23833 'STATE 5 e 12908 12907', 23834 'STATE 2 a 12910 12909', 23835 'STATE 3 i 12912 12911', 23836 'STATE 3 i 12856 12875', 23837 'STATE 4 o 12914 12913', 23838 'STATE 4 r 12916 12915', 23839 'STATE 4 n 12917 12916', 23840 'STATE 5 # 12863 12918', 23841 'STATE 5 d 12853 12875', 23842 'STATE 2 b 12875 12853', 23843 'PHONE ay', 23844 'STATE 5 n 12853 12919', 23845 'STATE 2 v 12920 12863', 23846 'STATE 4 n 12922 12921', 23847 'STATE 3 r 12863 12923', 23848 'STATE 2 o 12925 12924', 23849 'STATE 3 n 12863 12916', 23850 'STATE 5 n 12926 12856', 23851 'STATE 5 # 12853 12856', 23852 'STATE 4 u 12856 12927', 23853 'STATE 3 k 12856 12928', 23854 'STATE 5 e 12875 12916', 23855 'PHONE ih1', 23856 'PHONE ax', 23857 'STATE 2 l 12863 12853', 23858 'STATE 2 p 12853 12875', 23859 'STATE 1 a 12863 12929', 23860 'STATE 5 n 12931 12930', 23861 'STATE 5 a 12904 12932', 23862 'STATE 1 p 12934 12933', 23863 'STATE 2 e 12936 12935', 23864 'STATE 4 m 12916 12917', 23865 'STATE 2 e 12856 12937', 23866 'STATE 4 a 12939 12938', 23867 'STATE 5 n 12875 12940', 23868 'STATE 1 o 12863 12941', 23869 'STATE 4 k 12943 12942', 23870 'STATE 4 i 12944 12937', 23871 'STATE 2 a 12946 12945', 23872 'STATE 2 g 12916 12947', 23873 'STATE 4 m 12917 12863', 23874 'STATE 3 s 12875 12948', 23875 'STATE 3 g 12917 12916', 23876 'STATE 3 n 12856 12863', 23877 'STATE 4 e 12875 12949', 23878 'STATE 5 n 12904 12875', 23879 'STATE 3 m 12875 12856', 23880 'STATE 1 l 12863 12853', 23881 'STATE 4 l 12951 12950', 23882 'STATE 5 # 12952 12916', 23883 'STATE 3 f 12875 12953', 23884 'STATE 2 e 12917 12954', 23885 'STATE 3 r 12952 12916', 23886 'STATE 4 l 12956 12955', 23887 'STATE 5 e 12875 12957', 23888 'STATE 4 r 12959 12958', 23889 'STATE 4 e 12961 12960', 23890 'STATE 5 # 12917 12962', 23891 'PHONE ih', 23892 'STATE 3 l 12964 12963', 23893 'STATE 5 s 12916 12965', 23894 'STATE 3 d 12875 12966', 23895 'STATE 2 s 12875 12917', 23896 'STATE 4 e 12875 12967', 23897 'STATE 3 h 12969 12968', 23898 'STATE 5 o 12875 12970', 23899 'STATE 4 o 12972 12971', 23900 'STATE 3 u 12853 12973', 23901 'STATE 3 r 12975 12974', 23902 'STATE 2 r 12863 12976', 23903 'STATE 2 l 12863 12875', 23904 'STATE 1 r 12917 12977', 23905 'STATE 4 n 12875 12978', 23906 'STATE 3 k 12875 12979', 23907 'STATE 4 n 12981 12980', 23908 'STATE 5 n 12916 12982', 23909 'STATE 5 a 12875 12983', 23910 'STATE 4 u 12856 12984', 23911 'STATE 5 # 12856 12863', 23912 'STATE 5 # 12875 12985', 23913 'STATE 2 a 12917 12986', 23914 'STATE 1 m 12917 12863', 23915 'STATE 3 r 12875 12863', 23916 'STATE 5 i 12916 12987', 23917 'STATE 4 p 12875 12988', 23918 'STATE 4 o 12990 12989', 23919 'STATE 5 o 12992 12991', 23920 'STATE 3 d 12875 12916', 23921 'STATE 5 t 12916 12875', 23922 'STATE 3 l 12916 12993', 23923 'STATE 4 r 12995 12994', 23924 'STATE 3 m 12863 12996', 23925 'STATE 3 b 12916 12917', 23926 'STATE 3 w 12916 12997', 23927 'STATE 1 e 12999 12998', 23928 'STATE 3 u 12875 13000', 23929 'STATE 3 r 12875 12853', 23930 'STATE 3 c 13002 13001', 23931 'STATE 4 c 12904 12875', 23932 'STATE 3 m 12853 13003', 23933 'STATE 5 t 13005 13004', 23934 'STATE 2 o 12863 12853', 23935 'STATE 3 l 13006 12856', 23936 'STATE 3 s 12916 13007', 23937 'STATE 2 a 12875 13008', 23938 'STATE 2 n 12875 12863', 23939 'STATE 4 n 12916 13009', 23940 'STATE 5 a 13011 13010', 23941 'STATE 4 c 12875 13012', 23942 'STATE 5 i 12875 12916', 23943 'STATE 4 c 13014 13013', 23944 'STATE 3 l 12917 12916', 23945 'STATE 5 a 12856 12863', 23946 'STATE 2 r 12916 13015', 23947 'STATE 1 c 12863 13016', 23948 'STATE 5 n 12875 13017', 23949 'STATE 3 m 12916 13018', 23950 'STATE 3 l 12875 13019', 23951 'STATE 4 p 12875 12916', 23952 'STATE 4 i 12972 13020', 23953 'STATE 3 c 13022 13021', 23954 'STATE 1 e 12917 12916', 23955 'STATE 3 l 12863 13023', 23956 'STATE 4 l 12875 13024', 23957 'STATE 4 m 12916 13025', 23958 'STATE 3 b 12875 13026', 23959 'STATE 3 l 13028 13027', 23960 'STATE 3 z 12916 13029', 23961 'STATE 2 i 12952 12875', 23962 'STATE 2 o 12875 13030', 23963 'STATE 5 o 12875 13031', 23964 'STATE 3 r 12916 13032', 23965 'STATE 4 l 12916 13033', 23966 'STATE 3 z 13035 13034', 23967 'STATE 2 l 13037 13036', 23968 'STATE 2 o 13038 12916', 23969 'STATE 4 r 12875 13039', 23970 'STATE 2 f 12875 13040', 23971 'STATE 4 i 12875 13041', 23972 'STATE 4 b 12916 12875', 23973 'STATE 4 d 13043 13042', 23974 'STATE 4 b 12917 12875', 23975 'STATE 4 t 13045 13044', 23976 'STATE 4 s 12917 12863', 23977 'STATE 1 p 12952 12863', 23978 'STATE 3 h 12875 12904', 23979 'STATE 2 s 13047 13046', 23980 'STATE 5 u 12916 13048', 23981 'STATE 1 o 12916 13049', 23982 'STATE 3 h 12875 12863', 23983 'STATE 5 i 12917 13050', 23984 'STATE 2 a 12916 12917', 23985 'STATE 2 p 12916 13051', 23986 'STATE 3 z 12916 12875', 23987 'STATE 3 z 12916 13052', 23988 'STATE 1 r 12916 13053', 23989 'STATE 1 p 13054 12916', 23990 'STATE 4 p 12916 13055', 23991 'STATE 5 h 12875 13056', 23992 'STATE 4 p 12916 13057', 23993 'STATE 4 g 12916 13058', 23994 'STATE 5 h 12916 13059', 23995 'STATE 3 d 12916 13060', 23996 'STATE 3 s 12917 13061', 23997 'STATE 5 a 12917 12863', 23998 'STATE 3 h 12875 13062', 23999 'STATE 5 s 12916 13063', 24000 'STATE 3 n 13064 12863', 24001 'STATE 2 c 12916 13065', 24002 'STATE 3 b 12875 13066', 24003 'STATE 2 o 12917 12863', 24004 'STATE 3 r 12916 12875', 24005 'STATE 4 d 12916 13067', 24006 'STATE 5 i 12875 13068', 24007 'STATE 3 l 12875 13069', 24008 'STATE 3 w 12875 12916', 24009 'INDEX 13070 z', 24010 'STATE 3 t 13072 13071', 24011 'STATE 4 z 13074 13073', 24012 'STATE 4 # 13076 13075', 24013 'STATE 3 c 13074 13077', 24014 'PHONE epsilon', 24015 'STATE 4 e 13079 13078', 24016 'PHONE s', 24017 'STATE 3 s 13074 13080', 24018 'STATE 4 s 13074 13081', 24019 'PHONE z', 24020 'STATE 3 z 13083 13082', 24021 'STATE 4 i 13079 13084', 24022 'STATE 3 d 13086 13085', 24023 'STATE 4 l 13079 13087', 24024 'STATE 4 o 13079 13076', 24025 'STATE 4 s 13074 13088', 24026 'STATE 4 i 13074 13089', 24027 'STATE 4 # 13079 13090', 24028 'STATE 4 h 13092 13091', 24029 'STATE 4 e 13079 13074', 24030 'STATE 4 y 13079 13093', 24031 'STATE 3 r 13079 13094', 24032 'STATE 3 # 13095 13079', 24033 'STATE 4 o 13079 13096', 24034 'STATE 4 # 13079 13097', 24035 'PHONE zh', 24036 'STATE 4 e 13079 13098', 24037 'STATE 3 l 13099 13079', 24038 'PHONE t-s', 24039 'STATE 4 b 13098 13079', 24040 ]; 24041 24042 24043 // ///////////////////////////// End Functions //////////////////////////////////// 24044 24045 /*if (window.requestAnimationFrame) { // not used at moment 24046 24047 window.requestAnimationFrame = (function () { 24048 return window.webkitRequestAnimationFrame || 24049 window.mozRequestAnimationFrame || 24050 window.oRequestAnimationFrame || 24051 window.msRequestAnimationFrame || 24052 function ( callback,element) { 24053 window.setTimeout(callback, 1000 / RiText.frameRate); // Fallback timeout 24054 }; 24055 })(); 24056 }*/ 24057 24058 ///////////////////////////////////////////////////////////////////////////////////////// 24059 24060 var hasProcessing = (typeof Processing !== 'undefined'); 24061 24062 if (hasProcessing) { 24063 24064 Processing.registerLibrary("RiTa", { 24065 24066 //log("Processing.registerLibrary()"); 24067 p : null, 24068 24069 init : function(obj) { 24070 //log("Processing.registerLibrary.init: "); 24071 }, 24072 24073 attach : function(p5) { 24074 p = p5; 24075 //log("Processing.registerLibrary.attach"); 24076 RiText.renderer = new RiText_P5(p5); 24077 }, 24078 24079 detach : function(p5) { 24080 //log("Processing.registerLibrary.detach"); 24081 } 24082 24083 //exports : [] // export global function names? 24084 }) 24085 } 24086 else { 24087 24088 var cnv = document.getElementsByTagName("canvas")[0]; 24089 try { 24090 var context2d = cnv.getContext("2d"); 24091 RiText.renderer = new RiText_Canvas(context2d); 24092 } 24093 catch(e) { 24094 //console.warn("[RiTa] No object w' name='canvas' in DOM, renderer will be unavailable"); 24095 } 24096 } 24097 24098 console && console.log("[INFO] RiTa.version ["+RiTa.VERSION+RiTa.PHASE+"]"); 24099 24100 ///////////////////////////////////////////////////////////////////////////////////////// 24101 // Core RiTa objects (in global namespace) 24102 ///////////////////////////////////////////////////////////////////////////////////////// 24103 24104 window['RiString'] = RiString; 24105 window['RiLexicon'] = RiLexicon; 24106 window['RiGrammar'] = RiGrammar; 24107 window['RiMarkov'] = RiMarkov; 24108 window['RiText'] = RiText; 24109 window['RiTa'] = RiTa; 24110 24111 RiTa.p5Compatible(true); // TODO: pick a default? false... 24112 24113 // For Testing 24114 window['RiLetterToSound'] = LetterToSound; 24115 24116 })(window); 24117 24118